From 0427a58635f2dd7f3230777c689afaf755cecb05 Mon Sep 17 00:00:00 2001 From: Lexi Quinn Date: Wed, 8 Nov 2023 14:28:55 +1100 Subject: [PATCH] waited far too long for an initial commit but here we are --- .gitattributes | 2 + .gitignore | 2 + Assets/TextureAtlases/bubble.tres | 7 + Assets/TextureAtlases/dog.tres | 7 + Assets/TextureAtlases/dog_fast.tres | 7 + Assets/TextureAtlases/dog_fast_boss.tres | 7 + Assets/TextureAtlases/dog_fast_heavy.tres | 7 + Assets/TextureAtlases/dummy.tres | 7 + Assets/TextureAtlases/g_accelerator.tres | 7 + Assets/TextureAtlases/g_assault.tres | 7 + Assets/TextureAtlases/g_glue_gun.tres | 7 + Assets/TextureAtlases/g_grenade_launcher.tres | 7 + Assets/TextureAtlases/g_rocket_launcher.tres | 7 + Assets/TextureAtlases/g_sniper.tres | 7 + Assets/TextureAtlases/gauntlet.tres | 7 + Assets/TextureAtlases/green.tres | 7 + Assets/TextureAtlases/gun.tres | 8 + Assets/TextureAtlases/player.tres | 8 + Assets/TextureAtlases/rarityborders.tres | 7 + Assets/TextureAtlases/red.tres | 7 + Assets/TextureAtlases/spike.tres | 7 + Assets/TextureAtlases/target_list.tres | 7 + Assets/Textures/8directionplayer.png | Bin 0 -> 1552 bytes Assets/Textures/8directionplayer.png.import | 34 ++ Assets/Textures/8directionplayer.png~ | Bin 0 -> 1552 bytes Assets/Textures/accelerator.png | Bin 0 -> 2549 bytes Assets/Textures/accelerator.png.import | 34 ++ Assets/Textures/bomb.png | Bin 0 -> 799 bytes Assets/Textures/bomb.png.import | 34 ++ Assets/Textures/border.png | Bin 0 -> 3827 bytes Assets/Textures/border.png.import | 34 ++ Assets/Textures/border.png~ | Bin 0 -> 3767 bytes Assets/Textures/bubble.png | Bin 0 -> 1278 bytes Assets/Textures/bubble.png.import | 34 ++ Assets/Textures/bubble.png~ | Bin 0 -> 1277 bytes Assets/Textures/cardborders.png | Bin 0 -> 1924 bytes Assets/Textures/cardborders.png.import | 34 ++ Assets/Textures/cardhand.png | Bin 0 -> 1188 bytes Assets/Textures/cardhand.png.import | 34 ++ Assets/Textures/cardhand.png~ | Bin 0 -> 1173 bytes Assets/Textures/cardpush.png | Bin 0 -> 1344 bytes Assets/Textures/cardpush.png.import | 34 ++ Assets/Textures/crosshair.png | Bin 0 -> 733 bytes Assets/Textures/crosshair.png.import | 34 ++ Assets/Textures/crosshair.png~ | Bin 0 -> 730 bytes Assets/Textures/dummy.png | Bin 0 -> 1976 bytes Assets/Textures/dummy.png.import | 34 ++ Assets/Textures/enemyhealth.png | Bin 0 -> 1539 bytes Assets/Textures/enemyhealth.png.import | 34 ++ Assets/Textures/eye_dog.png | Bin 0 -> 1732 bytes Assets/Textures/eye_dog.png.import | 34 ++ Assets/Textures/eye_dog.png~ | Bin 0 -> 1739 bytes Assets/Textures/eye_dog_boss.png | Bin 0 -> 1728 bytes Assets/Textures/eye_dog_boss.png.import | 34 ++ Assets/Textures/eye_dog_fast.png | Bin 0 -> 1728 bytes Assets/Textures/eye_dog_fast.png.import | 34 ++ Assets/Textures/eye_dog_heavy.png | Bin 0 -> 1727 bytes Assets/Textures/eye_dog_heavy.png.import | 34 ++ Assets/Textures/g_assault.png | Bin 0 -> 2903 bytes Assets/Textures/g_assault.png.import | 34 ++ Assets/Textures/g_sniper.png | Bin 0 -> 2702 bytes Assets/Textures/g_sniper.png.import | 34 ++ Assets/Textures/gauntlet.png | Bin 0 -> 3411 bytes Assets/Textures/gauntlet.png.import | 34 ++ Assets/Textures/glue_gun.png | Bin 0 -> 2363 bytes Assets/Textures/glue_gun.png.import | 34 ++ Assets/Textures/glue_icon.png | Bin 0 -> 841 bytes Assets/Textures/glue_icon.png.import | 34 ++ Assets/Textures/grass.png | Bin 0 -> 985 bytes Assets/Textures/grass.png.import | 34 ++ Assets/Textures/green.png | Bin 0 -> 5063 bytes Assets/Textures/green.png.import | 34 ++ Assets/Textures/grenade_launcher.png | Bin 0 -> 2362 bytes Assets/Textures/grenade_launcher.png.import | 34 ++ Assets/Textures/gun.png | Bin 0 -> 2671 bytes Assets/Textures/gun.png.import | 34 ++ Assets/Textures/gun.png~ | Bin 0 -> 2662 bytes Assets/Textures/icon.svg | 1 + Assets/Textures/icon.svg.import | 37 ++ Assets/Textures/icon_eye_dog.png | Bin 0 -> 665 bytes Assets/Textures/icon_eye_dog.png.import | 34 ++ Assets/Textures/icon_eye_dog_boss.png | Bin 0 -> 652 bytes Assets/Textures/icon_eye_dog_boss.png.import | 34 ++ Assets/Textures/icon_eye_dog_fast.png | Bin 0 -> 664 bytes Assets/Textures/icon_eye_dog_fast.png.import | 34 ++ Assets/Textures/icon_eye_dog_heavy.png | Bin 0 -> 648 bytes Assets/Textures/icon_eye_dog_heavy.png.import | 34 ++ Assets/Textures/lifebar_bg.png | Bin 0 -> 792 bytes Assets/Textures/lifebar_bg.png.import | 34 ++ Assets/Textures/lifebar_pip.png | Bin 0 -> 478 bytes Assets/Textures/lifebar_pip.png.import | 34 ++ Assets/Textures/minimap_enemy.png | Bin 0 -> 743 bytes Assets/Textures/minimap_enemy.png.import | 34 ++ Assets/Textures/minimap_enemy.png~ | Bin 0 -> 757 bytes Assets/Textures/minimap_node.png | Bin 0 -> 641 bytes Assets/Textures/minimap_node.png.import | 34 ++ Assets/Textures/minimap_path_visual.png | Bin 0 -> 592 bytes .../Textures/minimap_path_visual.png.import | 34 ++ Assets/Textures/minimap_player.png | Bin 0 -> 694 bytes Assets/Textures/minimap_player.png.import | 34 ++ Assets/Textures/minimap_tree.png | Bin 0 -> 926 bytes Assets/Textures/minimap_tree.png.import | 34 ++ Assets/Textures/on_fire_icon.png | Bin 0 -> 944 bytes Assets/Textures/on_fire_icon.png.import | 34 ++ Assets/Textures/oohyeahwooyeah.png | Bin 0 -> 185063 bytes Assets/Textures/oohyeahwooyeah.png.import | 35 ++ Assets/Textures/radial.png | Bin 0 -> 5900 bytes Assets/Textures/radial.png.import | 34 ++ Assets/Textures/ready.png | Bin 0 -> 959 bytes Assets/Textures/ready.png.import | 34 ++ Assets/Textures/red.png | Bin 0 -> 5060 bytes Assets/Textures/red.png.import | 35 ++ Assets/Textures/rocket_launcher.png | Bin 0 -> 2691 bytes Assets/Textures/rocket_launcher.png.import | 34 ++ Assets/Textures/scopetest.png | Bin 0 -> 2007 bytes Assets/Textures/scopetest.png.import | 34 ++ Assets/Textures/scopetest.png~ | Bin 0 -> 3212 bytes Assets/Textures/spike.png | Bin 0 -> 1026 bytes Assets/Textures/spike.png.import | 34 ++ Assets/Textures/stone wall 7.png | Bin 0 -> 324862 bytes Assets/Textures/stone wall 7.png.import | 35 ++ Assets/Textures/target_icon.png | Bin 0 -> 1389 bytes Assets/Textures/target_icon.png.import | 34 ++ Assets/Textures/target_list.png | Bin 0 -> 3312 bytes Assets/Textures/target_list.png.import | 34 ++ Assets/Textures/tree.png | Bin 0 -> 2900 bytes Assets/Textures/tree.png.import | 34 ++ Assets/Textures/wavecounter.png | Bin 0 -> 1557 bytes Assets/Textures/wavecounter.png.import | 34 ++ PCs/Blue/blue.tres | 11 + PCs/Green/green.tres | 13 + PCs/Red/red.tres | 13 + .../ClassCards/Assault/card_assault.tres | 19 + PCs/Universal/ClassCards/Assault/tower.gd | 45 ++ .../ClassCards/Assault/tower_assault.tscn | 22 + PCs/Universal/ClassCards/Assault/weapon.gd | 66 ++ .../ClassCards/Assault/weapon_assault.tscn | 58 ++ PCs/Universal/ClassCards/BombLauncher/bomb.gd | 20 + .../ClassCards/BombLauncher/bomb.tscn | 29 + .../ClassCards/BombLauncher/bombtower.gd | 30 + .../ClassCards/BombLauncher/bombweapon.gd | 21 + .../BombLauncher/card_grenade_launcher.tres | 19 + .../BombLauncher/tower_bomb_launcher.tscn | 20 + .../BombLauncher/weapon_bomb_launcher.tscn | 59 ++ .../Flamethrower/card_flamethrower.tres | 15 + .../Flamethrower/tower_flamethrower.gd | 30 + .../Flamethrower/tower_flamethrower.tscn | 63 ++ .../ClassCards/Gatling/card_gatling.tres | 19 + .../ClassCards/Gatling/speedytower.gd | 32 + .../ClassCards/Gatling/speedyweapon.gd | 60 ++ .../ClassCards/Gatling/tower_gatling.tscn | 38 ++ .../ClassCards/Gatling/weapon_gatling.tscn | 58 ++ .../GlueLauncher/card_glue_launcher.tres | 19 + .../ClassCards/GlueLauncher/stickytower.gd | 12 + .../ClassCards/GlueLauncher/stickyweapon.gd | 19 + .../GlueLauncher/tower_glue_launcher.tscn | 26 + .../GlueLauncher/weapon_glue_launcher.tscn | 58 ++ .../RocketLauncher/card_rocket_launcher.tres | 19 + .../ClassCards/RocketLauncher/rocket.gd | 33 + .../ClassCards/RocketLauncher/rocket.tscn | 30 + .../RocketLauncher/rocket_weapon.gd | 66 ++ .../ClassCards/RocketLauncher/rockettower.gd | 56 ++ .../RocketLauncher/tower_rocket_launcher.tscn | 24 + .../weapon_rocket_launcher.tscn | 79 +++ .../ClassCards/Sniper/card_sniper.tres | 19 + .../ClassCards/Sniper/scopedweapon.gd | 15 + .../ClassCards/Sniper/tower_sniper.tscn | 18 + .../ClassCards/Sniper/weapon_sniper.tscn | 85 +++ PCs/hero.gd | 211 +++++++ PCs/hero.tscn | 425 +++++++++++++ PCs/player_movement.gd | 69 +++ Resources/Keymaps/azerty.tres | 75 +++ Resources/Keymaps/colemak.tres | 75 +++ Resources/Keymaps/dvorak.tres | 75 +++ Resources/Keymaps/qwerty.tres | 75 +++ Resources/Keymaps/workman.tres | 75 +++ Resources/StatusEffects/on_fire.tres | 12 + Resources/StatusEffects/sticky.tres | 12 + Resources/TurretStats/accelerator.tres | 10 + Resources/TurretStats/assault.tres | 10 + Resources/TurretStats/bomblauncher.tres | 10 + Resources/TurretStats/flametower.tres | 10 + Resources/TurretStats/glue.tres | 10 + Resources/TurretStats/rocketlauncher.tres | 10 + Resources/TurretStats/sniper.tres | 10 + Resources/WeaponStats/accelerator.tres | 9 + Resources/WeaponStats/assault.tres | 9 + Resources/WeaponStats/bomblauncher.tres | 9 + Resources/WeaponStats/flamethrower.tres | 9 + Resources/WeaponStats/glue.tres | 9 + Resources/WeaponStats/rocketlauncher.tres | 9 + Resources/WeaponStats/sniper.tres | 9 + Scenes/8_direction_sprite.tscn | 10 + Scenes/Menus/LoadoutEditor.tscn | 32 + Scenes/Menus/alert_popup.tscn | 27 + Scenes/Menus/confirmation_popup.tscn | 38 ++ Scenes/Menus/lost_game_screen.tscn | 60 ++ Scenes/Menus/main_menu.tscn | 104 ++++ Scenes/Menus/multiplayer_lobby.tscn | 76 +++ Scenes/Menus/options_menu.tscn | 268 +++++++++ Scenes/Menus/pause_menu.tscn | 61 ++ Scenes/Menus/server_form.tscn | 56 ++ Scenes/Menus/singleplayer_lobby.tscn | 62 ++ Scenes/Menus/text_input_popup.tscn | 31 + Scenes/Menus/won_game_screen.tscn | 60 ++ Scenes/UI/card_hand.tscn | 93 +++ Scenes/UI/chatbox.tscn | 39 ++ Scenes/UI/lifebar_segment.tscn | 558 +++++++++++++++++ Scenes/UI/lives_bar.tscn | 137 +++++ Scenes/UI/scoreboard.tscn | 31 + Scenes/UI/scoreboard_entry.tscn | 35 ++ Scenes/card_constructor.tscn | 133 ++++ Scenes/damage_particle.tscn | 30 + Scenes/enemy_spawner.tscn | 11 + Scenes/gauntlet.tscn | 40 ++ Scenes/item_card.tscn | 30 + Scenes/path_visual_thing.tscn | 24 + Scenes/status_icon.tscn | 7 + Scenes/target_icon.tscn | 12 + Scenes/tower_base.tscn | 33 + Scenes/tower_frame.tscn | 43 ++ Scenes/visual_path.tscn | 14 + Scripts/AStarGraph3D.gd | 97 +++ Scripts/DebugMesh.gd | 42 ++ Scripts/HUD.gd | 78 +++ Scripts/Resources/TowerStats.gd | 7 + Scripts/Resources/WeaponStats.gd | 6 + Scripts/Resources/card.gd | 13 + Scripts/Resources/enemy.gd | 12 + Scripts/Resources/hero_class.gd | 6 + Scripts/Resources/player_keymap.gd | 63 ++ Scripts/Resources/player_preferences.gd | 42 ++ Scripts/Resources/player_profile.gd | 47 ++ Scripts/Resources/status_stats.gd | 8 + Scripts/StatusEffector.gd | 36 ++ Scripts/StatusEffects/StatusOnFire.gd | 6 + Scripts/StatusEffects/status_effect.gd | 44 ++ Scripts/StatusEffects/status_sticky.gd | 18 + Scripts/alert_popup.gd | 13 + Scripts/card_hand.gd | 30 + Scripts/card_printer.gd | 59 ++ Scripts/chatbox.gd | 36 ++ Scripts/confirmation_popup.gd | 19 + Scripts/damage_particle.gd | 23 + Scripts/data.gd | 53 ++ Scripts/edit_tool.gd | 103 ++++ Scripts/eight_direction_sprite.gd | 36 ++ Scripts/enemy_spawner.gd | 66 ++ Scripts/float_and_spin.gd | 35 ++ Scripts/game.gd | 211 +++++++ Scripts/ground_enemy_controller.gd | 2 + Scripts/health.gd | 27 + Scripts/hitbox.gd | 13 + Scripts/interact_button.gd | 10 + Scripts/inventory.gd | 66 ++ Scripts/item_card.gd | 14 + Scripts/level.gd | 8 + Scripts/lifebar_segment.gd | 20 + Scripts/lives_bar.gd | 10 + Scripts/loadout_editor.gd | 15 + Scripts/lost_game_screen.gd | 10 + Scripts/main_menu.gd | 46 ++ Scripts/minimap_cam.gd | 10 + Scripts/multiplayer_lobby.gd | 124 ++++ Scripts/on_top_camera.gd | 7 + Scripts/options_menu.gd | 123 ++++ Scripts/path_visual_thing.gd | 16 + Scripts/pause_menu.gd | 46 ++ Scripts/scoreboard.gd | 46 ++ Scripts/scoreboard_entry.gd | 28 + Scripts/server_form.gd | 18 + Scripts/singleplayer_lobby.gd | 41 ++ Scripts/target_dummy.gd | 14 + Scripts/text_input_popup.gd | 14 + Scripts/tower_base.gd | 39 ++ Scripts/visualized_path.gd | 26 + Scripts/wave_manager.gd | 21 + Scripts/won_game_screen.gd | 10 + Worlds/GreenPlanet/Decorations/tree.tscn | 26 + Worlds/GreenPlanet/Enemies/air_enemy.tscn | 85 +++ .../Enemies/air_enemy_controller.gd | 54 ++ Worlds/GreenPlanet/Enemies/airenemy.tres | 17 + Worlds/GreenPlanet/Enemies/airenemy2.tres | 17 + Worlds/GreenPlanet/Enemies/dog.tres | 23 + Worlds/GreenPlanet/Enemies/dog_boss.tres | 17 + Worlds/GreenPlanet/Enemies/dog_fast.tres | 17 + Worlds/GreenPlanet/Enemies/dog_heavy.tres | 17 + .../GreenPlanet/Enemies/enemy_controller.gd | 48 ++ Worlds/GreenPlanet/Enemies/land_enemy.tscn | 93 +++ Worlds/GreenPlanet/Levels/first_level.tscn | 566 ++++++++++++++++++ Worlds/GreenPlanet/tilemap.tres | 63 ++ Worlds/GreenPlanet/tiles.tscn | 44 ++ Worlds/TestingRange/Enemies/dummy.tres | 14 + Worlds/TestingRange/Enemies/target_dummy.tscn | 83 +++ .../TestingRange/Levels/training_arena.tscn | 139 +++++ button_stylebox.tres | 12 + export_presets.cfg | 101 ++++ new_theme.tres | 43 ++ project.godot | 130 ++++ 299 files changed, 10191 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 Assets/TextureAtlases/bubble.tres create mode 100644 Assets/TextureAtlases/dog.tres create mode 100644 Assets/TextureAtlases/dog_fast.tres create mode 100644 Assets/TextureAtlases/dog_fast_boss.tres create mode 100644 Assets/TextureAtlases/dog_fast_heavy.tres create mode 100644 Assets/TextureAtlases/dummy.tres create mode 100644 Assets/TextureAtlases/g_accelerator.tres create mode 100644 Assets/TextureAtlases/g_assault.tres create mode 100644 Assets/TextureAtlases/g_glue_gun.tres create mode 100644 Assets/TextureAtlases/g_grenade_launcher.tres create mode 100644 Assets/TextureAtlases/g_rocket_launcher.tres create mode 100644 Assets/TextureAtlases/g_sniper.tres create mode 100644 Assets/TextureAtlases/gauntlet.tres create mode 100644 Assets/TextureAtlases/green.tres create mode 100644 Assets/TextureAtlases/gun.tres create mode 100644 Assets/TextureAtlases/player.tres create mode 100644 Assets/TextureAtlases/rarityborders.tres create mode 100644 Assets/TextureAtlases/red.tres create mode 100644 Assets/TextureAtlases/spike.tres create mode 100644 Assets/TextureAtlases/target_list.tres create mode 100644 Assets/Textures/8directionplayer.png create mode 100644 Assets/Textures/8directionplayer.png.import create mode 100644 Assets/Textures/8directionplayer.png~ create mode 100644 Assets/Textures/accelerator.png create mode 100644 Assets/Textures/accelerator.png.import create mode 100644 Assets/Textures/bomb.png create mode 100644 Assets/Textures/bomb.png.import create mode 100644 Assets/Textures/border.png create mode 100644 Assets/Textures/border.png.import create mode 100644 Assets/Textures/border.png~ create mode 100644 Assets/Textures/bubble.png create mode 100644 Assets/Textures/bubble.png.import create mode 100644 Assets/Textures/bubble.png~ create mode 100644 Assets/Textures/cardborders.png create mode 100644 Assets/Textures/cardborders.png.import create mode 100644 Assets/Textures/cardhand.png create mode 100644 Assets/Textures/cardhand.png.import create mode 100644 Assets/Textures/cardhand.png~ create mode 100644 Assets/Textures/cardpush.png create mode 100644 Assets/Textures/cardpush.png.import create mode 100644 Assets/Textures/crosshair.png create mode 100644 Assets/Textures/crosshair.png.import create mode 100644 Assets/Textures/crosshair.png~ create mode 100644 Assets/Textures/dummy.png create mode 100644 Assets/Textures/dummy.png.import create mode 100644 Assets/Textures/enemyhealth.png create mode 100644 Assets/Textures/enemyhealth.png.import create mode 100644 Assets/Textures/eye_dog.png create mode 100644 Assets/Textures/eye_dog.png.import create mode 100644 Assets/Textures/eye_dog.png~ create mode 100644 Assets/Textures/eye_dog_boss.png create mode 100644 Assets/Textures/eye_dog_boss.png.import create mode 100644 Assets/Textures/eye_dog_fast.png create mode 100644 Assets/Textures/eye_dog_fast.png.import create mode 100644 Assets/Textures/eye_dog_heavy.png create mode 100644 Assets/Textures/eye_dog_heavy.png.import create mode 100644 Assets/Textures/g_assault.png create mode 100644 Assets/Textures/g_assault.png.import create mode 100644 Assets/Textures/g_sniper.png create mode 100644 Assets/Textures/g_sniper.png.import create mode 100644 Assets/Textures/gauntlet.png create mode 100644 Assets/Textures/gauntlet.png.import create mode 100644 Assets/Textures/glue_gun.png create mode 100644 Assets/Textures/glue_gun.png.import create mode 100644 Assets/Textures/glue_icon.png create mode 100644 Assets/Textures/glue_icon.png.import create mode 100644 Assets/Textures/grass.png create mode 100644 Assets/Textures/grass.png.import create mode 100644 Assets/Textures/green.png create mode 100644 Assets/Textures/green.png.import create mode 100644 Assets/Textures/grenade_launcher.png create mode 100644 Assets/Textures/grenade_launcher.png.import create mode 100644 Assets/Textures/gun.png create mode 100644 Assets/Textures/gun.png.import create mode 100644 Assets/Textures/gun.png~ create mode 100644 Assets/Textures/icon.svg create mode 100644 Assets/Textures/icon.svg.import create mode 100644 Assets/Textures/icon_eye_dog.png create mode 100644 Assets/Textures/icon_eye_dog.png.import create mode 100644 Assets/Textures/icon_eye_dog_boss.png create mode 100644 Assets/Textures/icon_eye_dog_boss.png.import create mode 100644 Assets/Textures/icon_eye_dog_fast.png create mode 100644 Assets/Textures/icon_eye_dog_fast.png.import create mode 100644 Assets/Textures/icon_eye_dog_heavy.png create mode 100644 Assets/Textures/icon_eye_dog_heavy.png.import create mode 100644 Assets/Textures/lifebar_bg.png create mode 100644 Assets/Textures/lifebar_bg.png.import create mode 100644 Assets/Textures/lifebar_pip.png create mode 100644 Assets/Textures/lifebar_pip.png.import create mode 100644 Assets/Textures/minimap_enemy.png create mode 100644 Assets/Textures/minimap_enemy.png.import create mode 100644 Assets/Textures/minimap_enemy.png~ create mode 100644 Assets/Textures/minimap_node.png create mode 100644 Assets/Textures/minimap_node.png.import create mode 100644 Assets/Textures/minimap_path_visual.png create mode 100644 Assets/Textures/minimap_path_visual.png.import create mode 100644 Assets/Textures/minimap_player.png create mode 100644 Assets/Textures/minimap_player.png.import create mode 100644 Assets/Textures/minimap_tree.png create mode 100644 Assets/Textures/minimap_tree.png.import create mode 100644 Assets/Textures/on_fire_icon.png create mode 100644 Assets/Textures/on_fire_icon.png.import create mode 100644 Assets/Textures/oohyeahwooyeah.png create mode 100644 Assets/Textures/oohyeahwooyeah.png.import create mode 100644 Assets/Textures/radial.png create mode 100644 Assets/Textures/radial.png.import create mode 100644 Assets/Textures/ready.png create mode 100644 Assets/Textures/ready.png.import create mode 100644 Assets/Textures/red.png create mode 100644 Assets/Textures/red.png.import create mode 100644 Assets/Textures/rocket_launcher.png create mode 100644 Assets/Textures/rocket_launcher.png.import create mode 100644 Assets/Textures/scopetest.png create mode 100644 Assets/Textures/scopetest.png.import create mode 100644 Assets/Textures/scopetest.png~ create mode 100644 Assets/Textures/spike.png create mode 100644 Assets/Textures/spike.png.import create mode 100644 Assets/Textures/stone wall 7.png create mode 100644 Assets/Textures/stone wall 7.png.import create mode 100644 Assets/Textures/target_icon.png create mode 100644 Assets/Textures/target_icon.png.import create mode 100644 Assets/Textures/target_list.png create mode 100644 Assets/Textures/target_list.png.import create mode 100644 Assets/Textures/tree.png create mode 100644 Assets/Textures/tree.png.import create mode 100644 Assets/Textures/wavecounter.png create mode 100644 Assets/Textures/wavecounter.png.import create mode 100644 PCs/Blue/blue.tres create mode 100644 PCs/Green/green.tres create mode 100644 PCs/Red/red.tres create mode 100644 PCs/Universal/ClassCards/Assault/card_assault.tres create mode 100644 PCs/Universal/ClassCards/Assault/tower.gd create mode 100644 PCs/Universal/ClassCards/Assault/tower_assault.tscn create mode 100644 PCs/Universal/ClassCards/Assault/weapon.gd create mode 100644 PCs/Universal/ClassCards/Assault/weapon_assault.tscn create mode 100644 PCs/Universal/ClassCards/BombLauncher/bomb.gd create mode 100644 PCs/Universal/ClassCards/BombLauncher/bomb.tscn create mode 100644 PCs/Universal/ClassCards/BombLauncher/bombtower.gd create mode 100644 PCs/Universal/ClassCards/BombLauncher/bombweapon.gd create mode 100644 PCs/Universal/ClassCards/BombLauncher/card_grenade_launcher.tres create mode 100644 PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.tscn create mode 100644 PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.tscn create mode 100644 PCs/Universal/ClassCards/Flamethrower/card_flamethrower.tres create mode 100644 PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.gd create mode 100644 PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.tscn create mode 100644 PCs/Universal/ClassCards/Gatling/card_gatling.tres create mode 100644 PCs/Universal/ClassCards/Gatling/speedytower.gd create mode 100644 PCs/Universal/ClassCards/Gatling/speedyweapon.gd create mode 100644 PCs/Universal/ClassCards/Gatling/tower_gatling.tscn create mode 100644 PCs/Universal/ClassCards/Gatling/weapon_gatling.tscn create mode 100644 PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres create mode 100644 PCs/Universal/ClassCards/GlueLauncher/stickytower.gd create mode 100644 PCs/Universal/ClassCards/GlueLauncher/stickyweapon.gd create mode 100644 PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn create mode 100644 PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.tscn create mode 100644 PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres create mode 100644 PCs/Universal/ClassCards/RocketLauncher/rocket.gd create mode 100644 PCs/Universal/ClassCards/RocketLauncher/rocket.tscn create mode 100644 PCs/Universal/ClassCards/RocketLauncher/rocket_weapon.gd create mode 100644 PCs/Universal/ClassCards/RocketLauncher/rockettower.gd create mode 100644 PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.tscn create mode 100644 PCs/Universal/ClassCards/RocketLauncher/weapon_rocket_launcher.tscn create mode 100644 PCs/Universal/ClassCards/Sniper/card_sniper.tres create mode 100644 PCs/Universal/ClassCards/Sniper/scopedweapon.gd create mode 100644 PCs/Universal/ClassCards/Sniper/tower_sniper.tscn create mode 100644 PCs/Universal/ClassCards/Sniper/weapon_sniper.tscn create mode 100644 PCs/hero.gd create mode 100644 PCs/hero.tscn create mode 100644 PCs/player_movement.gd create mode 100644 Resources/Keymaps/azerty.tres create mode 100644 Resources/Keymaps/colemak.tres create mode 100644 Resources/Keymaps/dvorak.tres create mode 100644 Resources/Keymaps/qwerty.tres create mode 100644 Resources/Keymaps/workman.tres create mode 100644 Resources/StatusEffects/on_fire.tres create mode 100644 Resources/StatusEffects/sticky.tres create mode 100644 Resources/TurretStats/accelerator.tres create mode 100644 Resources/TurretStats/assault.tres create mode 100644 Resources/TurretStats/bomblauncher.tres create mode 100644 Resources/TurretStats/flametower.tres create mode 100644 Resources/TurretStats/glue.tres create mode 100644 Resources/TurretStats/rocketlauncher.tres create mode 100644 Resources/TurretStats/sniper.tres create mode 100644 Resources/WeaponStats/accelerator.tres create mode 100644 Resources/WeaponStats/assault.tres create mode 100644 Resources/WeaponStats/bomblauncher.tres create mode 100644 Resources/WeaponStats/flamethrower.tres create mode 100644 Resources/WeaponStats/glue.tres create mode 100644 Resources/WeaponStats/rocketlauncher.tres create mode 100644 Resources/WeaponStats/sniper.tres create mode 100644 Scenes/8_direction_sprite.tscn create mode 100644 Scenes/Menus/LoadoutEditor.tscn create mode 100644 Scenes/Menus/alert_popup.tscn create mode 100644 Scenes/Menus/confirmation_popup.tscn create mode 100644 Scenes/Menus/lost_game_screen.tscn create mode 100644 Scenes/Menus/main_menu.tscn create mode 100644 Scenes/Menus/multiplayer_lobby.tscn create mode 100644 Scenes/Menus/options_menu.tscn create mode 100644 Scenes/Menus/pause_menu.tscn create mode 100644 Scenes/Menus/server_form.tscn create mode 100644 Scenes/Menus/singleplayer_lobby.tscn create mode 100644 Scenes/Menus/text_input_popup.tscn create mode 100644 Scenes/Menus/won_game_screen.tscn create mode 100644 Scenes/UI/card_hand.tscn create mode 100644 Scenes/UI/chatbox.tscn create mode 100644 Scenes/UI/lifebar_segment.tscn create mode 100644 Scenes/UI/lives_bar.tscn create mode 100644 Scenes/UI/scoreboard.tscn create mode 100644 Scenes/UI/scoreboard_entry.tscn create mode 100644 Scenes/card_constructor.tscn create mode 100644 Scenes/damage_particle.tscn create mode 100644 Scenes/enemy_spawner.tscn create mode 100644 Scenes/gauntlet.tscn create mode 100644 Scenes/item_card.tscn create mode 100644 Scenes/path_visual_thing.tscn create mode 100644 Scenes/status_icon.tscn create mode 100644 Scenes/target_icon.tscn create mode 100644 Scenes/tower_base.tscn create mode 100644 Scenes/tower_frame.tscn create mode 100644 Scenes/visual_path.tscn create mode 100644 Scripts/AStarGraph3D.gd create mode 100644 Scripts/DebugMesh.gd create mode 100644 Scripts/HUD.gd create mode 100644 Scripts/Resources/TowerStats.gd create mode 100644 Scripts/Resources/WeaponStats.gd create mode 100644 Scripts/Resources/card.gd create mode 100644 Scripts/Resources/enemy.gd create mode 100644 Scripts/Resources/hero_class.gd create mode 100644 Scripts/Resources/player_keymap.gd create mode 100644 Scripts/Resources/player_preferences.gd create mode 100644 Scripts/Resources/player_profile.gd create mode 100644 Scripts/Resources/status_stats.gd create mode 100644 Scripts/StatusEffector.gd create mode 100644 Scripts/StatusEffects/StatusOnFire.gd create mode 100644 Scripts/StatusEffects/status_effect.gd create mode 100644 Scripts/StatusEffects/status_sticky.gd create mode 100644 Scripts/alert_popup.gd create mode 100644 Scripts/card_hand.gd create mode 100644 Scripts/card_printer.gd create mode 100644 Scripts/chatbox.gd create mode 100644 Scripts/confirmation_popup.gd create mode 100644 Scripts/damage_particle.gd create mode 100644 Scripts/data.gd create mode 100644 Scripts/edit_tool.gd create mode 100644 Scripts/eight_direction_sprite.gd create mode 100644 Scripts/enemy_spawner.gd create mode 100644 Scripts/float_and_spin.gd create mode 100644 Scripts/game.gd create mode 100644 Scripts/ground_enemy_controller.gd create mode 100644 Scripts/health.gd create mode 100644 Scripts/hitbox.gd create mode 100644 Scripts/interact_button.gd create mode 100644 Scripts/inventory.gd create mode 100644 Scripts/item_card.gd create mode 100644 Scripts/level.gd create mode 100644 Scripts/lifebar_segment.gd create mode 100644 Scripts/lives_bar.gd create mode 100644 Scripts/loadout_editor.gd create mode 100644 Scripts/lost_game_screen.gd create mode 100644 Scripts/main_menu.gd create mode 100644 Scripts/minimap_cam.gd create mode 100644 Scripts/multiplayer_lobby.gd create mode 100644 Scripts/on_top_camera.gd create mode 100644 Scripts/options_menu.gd create mode 100644 Scripts/path_visual_thing.gd create mode 100644 Scripts/pause_menu.gd create mode 100644 Scripts/scoreboard.gd create mode 100644 Scripts/scoreboard_entry.gd create mode 100644 Scripts/server_form.gd create mode 100644 Scripts/singleplayer_lobby.gd create mode 100644 Scripts/target_dummy.gd create mode 100644 Scripts/text_input_popup.gd create mode 100644 Scripts/tower_base.gd create mode 100644 Scripts/visualized_path.gd create mode 100644 Scripts/wave_manager.gd create mode 100644 Scripts/won_game_screen.gd create mode 100644 Worlds/GreenPlanet/Decorations/tree.tscn create mode 100644 Worlds/GreenPlanet/Enemies/air_enemy.tscn create mode 100644 Worlds/GreenPlanet/Enemies/air_enemy_controller.gd create mode 100644 Worlds/GreenPlanet/Enemies/airenemy.tres create mode 100644 Worlds/GreenPlanet/Enemies/airenemy2.tres create mode 100644 Worlds/GreenPlanet/Enemies/dog.tres create mode 100644 Worlds/GreenPlanet/Enemies/dog_boss.tres create mode 100644 Worlds/GreenPlanet/Enemies/dog_fast.tres create mode 100644 Worlds/GreenPlanet/Enemies/dog_heavy.tres create mode 100644 Worlds/GreenPlanet/Enemies/enemy_controller.gd create mode 100644 Worlds/GreenPlanet/Enemies/land_enemy.tscn create mode 100644 Worlds/GreenPlanet/Levels/first_level.tscn create mode 100644 Worlds/GreenPlanet/tilemap.tres create mode 100644 Worlds/GreenPlanet/tiles.tscn create mode 100644 Worlds/TestingRange/Enemies/dummy.tres create mode 100644 Worlds/TestingRange/Enemies/target_dummy.tscn create mode 100644 Worlds/TestingRange/Levels/training_arena.tscn create mode 100644 button_stylebox.tres create mode 100644 export_presets.cfg create mode 100644 new_theme.tres create mode 100644 project.godot diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/Assets/TextureAtlases/bubble.tres b/Assets/TextureAtlases/bubble.tres new file mode 100644 index 0000000..55cf58e --- /dev/null +++ b/Assets/TextureAtlases/bubble.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://d0vafwv4lhjji"] + +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="1_bkvds"] + +[resource] +atlas = ExtResource("1_bkvds") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/dog.tres b/Assets/TextureAtlases/dog.tres new file mode 100644 index 0000000..e6019d9 --- /dev/null +++ b/Assets/TextureAtlases/dog.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://t088ud0ub7r"] + +[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="1_klis4"] + +[resource] +atlas = ExtResource("1_klis4") +region = Rect2(0, 0, 32, 32) diff --git a/Assets/TextureAtlases/dog_fast.tres b/Assets/TextureAtlases/dog_fast.tres new file mode 100644 index 0000000..6dd4ca4 --- /dev/null +++ b/Assets/TextureAtlases/dog_fast.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dd212gh03wloa"] + +[ext_resource type="Texture2D" uid="uid://55cchelc8cqw" path="res://Assets/Textures/eye_dog_fast.png" id="1_0hpxg"] + +[resource] +atlas = ExtResource("1_0hpxg") +region = Rect2(0, 0, 32, 32) diff --git a/Assets/TextureAtlases/dog_fast_boss.tres b/Assets/TextureAtlases/dog_fast_boss.tres new file mode 100644 index 0000000..5075ddb --- /dev/null +++ b/Assets/TextureAtlases/dog_fast_boss.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ff3cys53p37j"] + +[ext_resource type="Texture2D" uid="uid://c070a2dbkw55e" path="res://Assets/Textures/eye_dog_boss.png" id="1_emrg4"] + +[resource] +atlas = ExtResource("1_emrg4") +region = Rect2(0, 0, 32, 32) diff --git a/Assets/TextureAtlases/dog_fast_heavy.tres b/Assets/TextureAtlases/dog_fast_heavy.tres new file mode 100644 index 0000000..d4e5f28 --- /dev/null +++ b/Assets/TextureAtlases/dog_fast_heavy.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://c0543ucoalwmi"] + +[ext_resource type="Texture2D" uid="uid://54qqmcwcnsun" path="res://Assets/Textures/eye_dog_heavy.png" id="1_7fwbx"] + +[resource] +atlas = ExtResource("1_7fwbx") +region = Rect2(0, 0, 32, 32) diff --git a/Assets/TextureAtlases/dummy.tres b/Assets/TextureAtlases/dummy.tres new file mode 100644 index 0000000..33d3c6c --- /dev/null +++ b/Assets/TextureAtlases/dummy.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://brjk5pu0up85s"] + +[ext_resource type="Texture2D" uid="uid://c8h7sihm5uv32" path="res://Assets/Textures/dummy.png" id="1_gqyi8"] + +[resource] +atlas = ExtResource("1_gqyi8") +region = Rect2(0, 0, 48, 48) diff --git a/Assets/TextureAtlases/g_accelerator.tres b/Assets/TextureAtlases/g_accelerator.tres new file mode 100644 index 0000000..fc7c31c --- /dev/null +++ b/Assets/TextureAtlases/g_accelerator.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://d1am28tgvwaa0"] + +[ext_resource type="Texture2D" uid="uid://cx5cwn11fuugq" path="res://Assets/Textures/accelerator.png" id="1_e3hoc"] + +[resource] +atlas = ExtResource("1_e3hoc") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/g_assault.tres b/Assets/TextureAtlases/g_assault.tres new file mode 100644 index 0000000..0c7b91e --- /dev/null +++ b/Assets/TextureAtlases/g_assault.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ca4lwwd3e0y73"] + +[ext_resource type="Texture2D" uid="uid://celay30i4soud" path="res://Assets/Textures/g_assault.png" id="1_5fof3"] + +[resource] +atlas = ExtResource("1_5fof3") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/g_glue_gun.tres b/Assets/TextureAtlases/g_glue_gun.tres new file mode 100644 index 0000000..49d6a69 --- /dev/null +++ b/Assets/TextureAtlases/g_glue_gun.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://jmxhiwsiw1f5"] + +[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://Assets/Textures/glue_gun.png" id="1_2wjjm"] + +[resource] +atlas = ExtResource("1_2wjjm") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/g_grenade_launcher.tres b/Assets/TextureAtlases/g_grenade_launcher.tres new file mode 100644 index 0000000..892a5b6 --- /dev/null +++ b/Assets/TextureAtlases/g_grenade_launcher.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bwufgga1pjyt"] + +[ext_resource type="Texture2D" uid="uid://3qcdx7n440sc" path="res://Assets/Textures/grenade_launcher.png" id="1_qc0g6"] + +[resource] +atlas = ExtResource("1_qc0g6") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/g_rocket_launcher.tres b/Assets/TextureAtlases/g_rocket_launcher.tres new file mode 100644 index 0000000..304659c --- /dev/null +++ b/Assets/TextureAtlases/g_rocket_launcher.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://clr6kfyci5jqb"] + +[ext_resource type="Texture2D" uid="uid://by1y15lm0bppe" path="res://Assets/Textures/rocket_launcher.png" id="1_0bxom"] + +[resource] +atlas = ExtResource("1_0bxom") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/g_sniper.tres b/Assets/TextureAtlases/g_sniper.tres new file mode 100644 index 0000000..94355f0 --- /dev/null +++ b/Assets/TextureAtlases/g_sniper.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://fmqq24n7rwvm"] + +[ext_resource type="Texture2D" uid="uid://cv2eycs1j0ho7" path="res://Assets/Textures/g_sniper.png" id="1_weegr"] + +[resource] +atlas = ExtResource("1_weegr") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/gauntlet.tres b/Assets/TextureAtlases/gauntlet.tres new file mode 100644 index 0000000..b80dd05 --- /dev/null +++ b/Assets/TextureAtlases/gauntlet.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dkbkam81k355s"] + +[ext_resource type="Texture2D" uid="uid://cu1usmlhagpte" path="res://Assets/Textures/gauntlet.png" id="1_ueosg"] + +[resource] +atlas = ExtResource("1_ueosg") +region = Rect2(64, 0, 64, 64) diff --git a/Assets/TextureAtlases/green.tres b/Assets/TextureAtlases/green.tres new file mode 100644 index 0000000..af4dbd6 --- /dev/null +++ b/Assets/TextureAtlases/green.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bgt3j4cuq814m"] + +[ext_resource type="Texture2D" uid="uid://dyqh1uu4pocv1" path="res://Assets/Textures/green.png" id="1_gvbxi"] + +[resource] +atlas = ExtResource("1_gvbxi") +region = Rect2(0, 0, 96, 96) diff --git a/Assets/TextureAtlases/gun.tres b/Assets/TextureAtlases/gun.tres new file mode 100644 index 0000000..4713b17 --- /dev/null +++ b/Assets/TextureAtlases/gun.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://d060ag2vw7dp1"] + +[ext_resource type="Texture2D" uid="uid://ctjktwiq2fcjm" path="res://Assets/Textures/gun.png" id="1_m5tps"] + +[resource] +resource_local_to_scene = true +atlas = ExtResource("1_m5tps") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/player.tres b/Assets/TextureAtlases/player.tres new file mode 100644 index 0000000..4d10042 --- /dev/null +++ b/Assets/TextureAtlases/player.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bf3gkg7f2oyg7"] + +[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="1_fx7vy"] + +[resource] +resource_local_to_scene = true +atlas = ExtResource("1_fx7vy") +region = Rect2(0, 0, 32, 32) diff --git a/Assets/TextureAtlases/rarityborders.tres b/Assets/TextureAtlases/rarityborders.tres new file mode 100644 index 0000000..4c16e4e --- /dev/null +++ b/Assets/TextureAtlases/rarityborders.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://buf8t5gc7iw3a"] + +[ext_resource type="Texture2D" uid="uid://cns2qqfpjcx4l" path="res://Assets/Textures/cardborders.png" id="1_faqjw"] + +[resource] +atlas = ExtResource("1_faqjw") +region = Rect2(0, 0, 320, 64) diff --git a/Assets/TextureAtlases/red.tres b/Assets/TextureAtlases/red.tres new file mode 100644 index 0000000..a3d9361 --- /dev/null +++ b/Assets/TextureAtlases/red.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://hxev3a2ktya"] + +[ext_resource type="Texture2D" uid="uid://cjqxkraykhxxk" path="res://Assets/Textures/red.png" id="1_ecb2i"] + +[resource] +atlas = ExtResource("1_ecb2i") +region = Rect2(0, 0, 96, 96) diff --git a/Assets/TextureAtlases/spike.tres b/Assets/TextureAtlases/spike.tres new file mode 100644 index 0000000..437b542 --- /dev/null +++ b/Assets/TextureAtlases/spike.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://sybn6bjbj5fh"] + +[ext_resource type="Texture2D" uid="uid://duywsy7jmh4u" path="res://Assets/Textures/spike.png" id="1_nf07h"] + +[resource] +atlas = ExtResource("1_nf07h") +region = Rect2(0, 0, 64, 64) diff --git a/Assets/TextureAtlases/target_list.tres b/Assets/TextureAtlases/target_list.tres new file mode 100644 index 0000000..62d1538 --- /dev/null +++ b/Assets/TextureAtlases/target_list.tres @@ -0,0 +1,7 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bgeu8dnqaxq7v"] + +[ext_resource type="Texture2D" uid="uid://cc2umukpibmx1" path="res://Assets/Textures/target_list.png" id="1_s0pjb"] + +[resource] +atlas = ExtResource("1_s0pjb") +region = Rect2(0, 0, 128, 128) diff --git a/Assets/Textures/8directionplayer.png b/Assets/Textures/8directionplayer.png new file mode 100644 index 0000000000000000000000000000000000000000..8766948cf5988cc743c57e995a0cb039a53548ee GIT binary patch literal 1552 zcmeAS@N?(olHy`uVBq!ia0y~yU}RumU{K&-V_;zTyK>nR1_s8wOlRkS%;aPS291fO z6D_@&14UZ*t9ZpI35p1A^bkC%#26^(-Rn9_K}fXcmda$`6GmrLI&N^8i8ZxmJP!N8 zzeO}hl*Lid<;|PBQk;)#Jrx`$neW*t|9o%p&SJJV3wx%SMlVyGtu65|;lO5@$d4BH zGnezL-}P}Z4W2)9KL5p%zcxw1Uk|RYGTnc@p!AsVGPZ4I4?TU&xegieF6?buR}sD= z+}r)}A@xIc&TJz4LaWvs%I^vm{TGy@)0Td4T~$?3sm$tR-Q1K`_m;gkeF9gXTfFbc z)Dyb89 z)tUE_3-S*?_4VzRJ#dxpi~Z|B<)~>go8F#Osflq2XQ_I(FnQ~w(64hot4G|K6ko#L z?rxy-{cd)>q;rPowO7N=I?5;$z~h>+D@wa*XQ=(OGx}v z2g?r|`1X9z`v2+MVfhswKOPS+*X5qR`9biz)q8I|Jjmzs9=I4Aq zUoJlqe3o_WqUH7%;-(BL7EH$_WOP#uwwt?Mf1Nm|Hg7un?gHK4g{tesYB$TQ{g=qx zkaVkQ$^!N2*Dl7TKd!31_-f-3_sRz=g`ZAtZ$4`6?KkC`T-ma^ZHy5Prt<}=oOW7j zPS>gFyMC&2CA+qz=f<$&_+Is|2c^|*?@Rs7Va_<|b?~+g?@Y7n#q(RW*J}5E&Y1JG z%Ch2f`X80o=?@remf9>S6nZNaleyPy-E9UNr8T{aRNKBs>0SJBBKi4>uLx1#dx&S|gSn>A=$DqpQ^Dq5QT*l_)^V#@`0-E;r=ZC%8+;H}-QigOJUCo1<` zlxjDfEnhhEY1OszhgBByRm+!`PrR}CvrW|G0s&Ko_ibJs83t~POiQ(o=U*Kb`sQ&0W)XWv{X{Y0!|&eH^j(r*7Spb?z%RSFM*j7`*z} zo8mdw7}hkYR(^TEQ1zpA@~gyKFZap+=KB4-QcmwCgUan+f3Kf^Xy4DqGXF zJFnUJHK*AL-L9IaD%1A<FVdQ&MBb@076mjtpET3 literal 0 HcmV?d00001 diff --git a/Assets/Textures/8directionplayer.png.import b/Assets/Textures/8directionplayer.png.import new file mode 100644 index 0000000..e5cc001 --- /dev/null +++ b/Assets/Textures/8directionplayer.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwqifoaxbsbio" +path="res://.godot/imported/8directionplayer.png-9f1d9c7387ae05b7b8a30ff9aa0fac65.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/8directionplayer.png" +dest_files=["res://.godot/imported/8directionplayer.png-9f1d9c7387ae05b7b8a30ff9aa0fac65.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/8directionplayer.png~ b/Assets/Textures/8directionplayer.png~ new file mode 100644 index 0000000000000000000000000000000000000000..8766948cf5988cc743c57e995a0cb039a53548ee GIT binary patch literal 1552 zcmeAS@N?(olHy`uVBq!ia0y~yU}RumU{K&-V_;zTyK>nR1_s8wOlRkS%;aPS291fO z6D_@&14UZ*t9ZpI35p1A^bkC%#26^(-Rn9_K}fXcmda$`6GmrLI&N^8i8ZxmJP!N8 zzeO}hl*Lid<;|PBQk;)#Jrx`$neW*t|9o%p&SJJV3wx%SMlVyGtu65|;lO5@$d4BH zGnezL-}P}Z4W2)9KL5p%zcxw1Uk|RYGTnc@p!AsVGPZ4I4?TU&xegieF6?buR}sD= z+}r)}A@xIc&TJz4LaWvs%I^vm{TGy@)0Td4T~$?3sm$tR-Q1K`_m;gkeF9gXTfFbc z)Dyb89 z)tUE_3-S*?_4VzRJ#dxpi~Z|B<)~>go8F#Osflq2XQ_I(FnQ~w(64hot4G|K6ko#L z?rxy-{cd)>q;rPowO7N=I?5;$z~h>+D@wa*XQ=(OGx}v z2g?r|`1X9z`v2+MVfhswKOPS+*X5qR`9biz)q8I|Jjmzs9=I4Aq zUoJlqe3o_WqUH7%;-(BL7EH$_WOP#uwwt?Mf1Nm|Hg7un?gHK4g{tesYB$TQ{g=qx zkaVkQ$^!N2*Dl7TKd!31_-f-3_sRz=g`ZAtZ$4`6?KkC`T-ma^ZHy5Prt<}=oOW7j zPS>gFyMC&2CA+qz=f<$&_+Is|2c^|*?@Rs7Va_<|b?~+g?@Y7n#q(RW*J}5E&Y1JG z%Ch2f`X80o=?@remf9>S6nZNaleyPy-E9UNr8T{aRNKBs>0SJBBKi4>uLx1#dx&S|gSn>A=$DqpQ^Dq5QT*l_)^V#@`0-E;r=ZC%8+;H}-QigOJUCo1<` zlxjDfEnhhEY1OszhgBByRm+!`PrR}CvrW|G0s&Ko_ibJs83t~POiQ(o=U*Kb`sQ&0W)XWv{X{Y0!|&eH^j(r*7Spb?z%RSFM*j7`*z} zo8mdw7}hkYR(^TEQ1zpA@~gyKFZap+=KB4-QcmwCgUan+f3Kf^Xy4DqGXF zJFnUJHK*AL-L9IaD%1A<FVdQ&MBb@076mjtpET3 literal 0 HcmV?d00001 diff --git a/Assets/Textures/accelerator.png b/Assets/Textures/accelerator.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc6ef4010af3b718b25cbdec938c961806e9333 GIT binary patch literal 2549 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/accelerator.png.import b/Assets/Textures/accelerator.png.import new file mode 100644 index 0000000..a4f1065 --- /dev/null +++ b/Assets/Textures/accelerator.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cx5cwn11fuugq" +path="res://.godot/imported/accelerator.png-1a0f15190d75444ec6328a57ff1e8fbe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/accelerator.png" +dest_files=["res://.godot/imported/accelerator.png-1a0f15190d75444ec6328a57ff1e8fbe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/bomb.png b/Assets/Textures/bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..e48dd60982601c069a897b03b13e98964d4277c1 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANNfd6~}60h!6k3=A3*ODFF3 zJ{%x&tbSWp(A1z3fx;ILvI7KI3$Iv}Xa=onTCdvaslCKhMOSHEQ+M+Ng&}=@s8UHkG&6{{rU0kFQ0n6!jw(Dd%~@`emY$|t0Mey=FOcIe~kr` zu3U8XF}6w9nd|rQ{jVKM-LB5AyZZWnb!hnGMK2`-E-TpNSmXspEK}SXR3ehkwOz_G zH}HqUj`LF)TlJ@|WB;?nLi)q(q;f4|KE8S5{rSkZ@tICSz&;zW=vazux|^_37{V?fd?hvOHwB&=2`@deY?+yI(|$ zt}T{d^tzxb@ZuL)i`xy`s@;pXZW5U$yGf_Qvhi7D#?H1AH50C$w>(~MuvKmU3$C*7 z3!>k-i|=Fnl$61Ioo7Q40|NtRfk$L91B0G22s2hJwJ&2}U<~(kaSVyzd^^Q9kI7J= zb+4eT(@q9nAz2~S=N<C`hwvWH2>}BD+Q*rI{ zXS?&~))oKXqvcs|Jm<&DI_aO!9*6gTJbhQO%dx&sR#c(TOJ>j4yDySsTNedgG*hr$ zsW4YIJYG+Pztw4fn0BcgzunX*5_BunRCq^&KxJh;~C~;t3Asyym{s3qkGliq2h157YdrNUFp2}NGGW=gUO&f zS}}-0t#FsAejTgj+=_=w)|IhLHnCz%2z+;>|3iLvgA21jv*P+0D;a07Hr=**!*o07 zViH5h90exgTe~DWM4f Dma=0m literal 0 HcmV?d00001 diff --git a/Assets/Textures/bomb.png.import b/Assets/Textures/bomb.png.import new file mode 100644 index 0000000..88ef533 --- /dev/null +++ b/Assets/Textures/bomb.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b54d5dc4jmlau" +path="res://.godot/imported/bomb.png-c85d126612097bd650bbb12e0b92da53.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/bomb.png" +dest_files=["res://.godot/imported/bomb.png-c85d126612097bd650bbb12e0b92da53.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/border.png b/Assets/Textures/border.png new file mode 100644 index 0000000000000000000000000000000000000000..f1b77d88bc51edda02de364ae63912baa84fa6f3 GIT binary patch literal 3827 zcmeAS@N?(olHy`uVBq!ia0y~yU}R%pU<}}3V_;y2eRSa(0|R4Trn7TEW^ytEgT}-s74^geEWl+$@%)VlMB%8w9#-RPq)wXPNW#Z@?1%rNh+s+9Yx z%6NFz+=;hzce78o2vo{gqPeNZvvER*x6$wW=6_z#PI9%`wI}yl!I6oo>h}}_yDwdx zFiY_6gySi`PydM)KCf^i) zmAP`uIoxKO6C1YWi{6}kr|Zpgi-PtC?ahf-V_v`f!mO4)=@0r-HfhZ-F5>Sj{posr z!*>3^Mf-C(@;4JWnEM{QPQwCwiilz2t3=F*5o-U3d6^w818umSI zlVp8x_khExE0%5RCtNb%S#m-#=$DFKEr&Q8lk(E_50aPo&CJ@|q}yw$;Zn3Mm9AKImDfl;$l|;p1Rv^DK3iL+gQuL5J*F+F1Oi&#?dZ;q8UT?{3dL zV88$W(=8K?+k{)CSvX`^MGglZ3TI;RW9oY7@{o;@$(`|N!ITeE85$=a2wxtZCvaoN zf%5v_=g%ttyS~1D@6Q?R@3=MEe!HoKsTqWE9C!YE{QiEsdwYKUx_o|r?A_;m-i${J zUOwC{%B|A+;rafW;__zaOpW$JwfTlUzbi_dnLIUfGUiT~Ta{FyxnJC$_1#=ujn)vO z*}*(BC$ALeIupp%e!6qxdBwOL@3i8g4A&^Ju@`zL^aWYe>pm@5_pvP6a8KlpQs)PM z>YeM8pQx7au9?vvYj`I8_00Jq64ucHT>g*l{VY6Mz`o+g!>j-7^Ox(fP8YuZzUXK{ z?xT5(jay^qk~uQ;4%y4=3%jRzt$f7B%IED$+dbS2>#?qda;>38=Kyle}r48bYM>kAYDc^HkXu6=g z-E`so-WqL>tq)x{Z0tTS`E1V|32TmiUG)VL(>8zeVlh)*AYmpvm05MeoQ9-`b5*a` zKPgIj&1qNgr|Ti3&f?FUcYZBCrD|U>Cx7=_+s#Qg;?nwN9C*Xjm00#DcJG0sPmioK z+kB?AA!)~h4`-E`{@wT_xHk8!R$K1Vt-BV7@~!SpnZz8#Gua@_w)1pn(+*K*#}mct zEsjPu|F`;jN7MG(pRR|7`j_`}TV&t(Y3*qE#^%A&YqKA%NnDxy)#^K|$l+RL;loVf z>Ack%?epvYD?{jl~qsVRp_UvxdZb;R~Or%w>y@una5>;M0~bMem4%%uiAOC;K2@BE%~ z;PTUgil0kQJ=_`k{paOo#&^Y`(R&>pT)vR~@5kZo&gK30%6~}DTlVMnoH?2?#q9C(Po|C4)B_m` z!FxNND}HEb*xb&(VVR7re!@|MrE8wg3QE|b(5L^z=&{DfKjB9|>{*x|;ijO~{=I#X z&b{uG``T@1PF~r?vTub-pSDK#;v;X@cRk$J>%L9#Lx?BO+7%Xh|L6J5H{{vteP_FC z+y3x$z=!R`B zGUsQpW_7t3uKAh!;>I@xgYua_O!u^xcgk`IC^$4QFfy@VV_0zgkr#iy`ex4gEmIj7 P7#KWV{an^LB{Ts5%lt{N literal 0 HcmV?d00001 diff --git a/Assets/Textures/border.png.import b/Assets/Textures/border.png.import new file mode 100644 index 0000000..00d5a61 --- /dev/null +++ b/Assets/Textures/border.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cqnapc8cscl7i" +path="res://.godot/imported/border.png-47da00bdbff46b23863f8be9462051bb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/border.png" +dest_files=["res://.godot/imported/border.png-47da00bdbff46b23863f8be9462051bb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/border.png~ b/Assets/Textures/border.png~ new file mode 100644 index 0000000000000000000000000000000000000000..5ea1ee1b7b72d74113677fc1ee9885e30c6a6db8 GIT binary patch literal 3767 zcmeAS@N?(olHy`uVBq!ia0y~yU}R%pU<}}3V_;y2eRSa(0|R4Trn7TEW^ytEgT}-s74^geEWl+$@%)VlMB%8w9#-RPq)wXPNW#Z@?1%rNh+s+9Yx z%6NFz+=;hzce78o2vo{gqPeNZvvER*x6$wW=6_z#PI9%`wI}yl!I6oo>h}}_yDwdx zFiY_6gySi`PydM)KCf^i) zmAP`uIoxKO6C1YWi{6}kr|Zpgi-PtC?ahf-V_v`f!mO4)=@0r-HfhZ-F5>Sj{posr z!*>3^Mf-C(@;4JWnEM{QPQwCwiilz2t3=BN)JzX3_Dj471HSAMq zm27($+v4JJ#&AcIGqA~ml z_m%%&<>m`1Tu}b-@;KK#!!I&-m$4)phb|On z&lc)nZBblimcEAZHE-=^6Z;UJNu)yz`G(z5XRH8WKKZVqRk)Cms#4F+HC+#0ofG}uQI z+-O!CEo4TE*U^fF>?(E7e~X`r^UORN99kRFc|_Bez@HoU;ppv z_wMhN$9Fau%&D%(KFs7Puj2mh@7 z81mrSX4XIt)yr52uCP$)&Gxr^r5_W z`hD)h-L3ay1%Lc&{~z=7MDhK%PY+l9JG5cm+VeHb4_w*I8n{FF`!RX(Hfe{W^7r2S z|6KM`qr$TAXRIF2bhUfNN*kt57xs2fObLDeOGANYAFr9F!B?ZC$^1VO_`M|f$}Y5C zzxn2LXY2PbFXK2l4r>eK$B9>5Io+9V6aAsM?elK#!#mrz&(kpwWwnp5xKr5ju<+VG zp~kx$9EbD#zHVXP)j8kT=F!cj>B9Q=lMj7JdRX3gV3vLQj4DY%8xv)2E{?-ZGwehg z7jtkN4%DlBU@Q00DCxoHqDTImi4yyi|5&LOd@F7?sFA?4jC|?eo@7A{a@Hq<@ygh?v?%iedf@H{j)2N zu!M;Vv|a7w|H^tU&QB)G`1Bl3j>D4e=Fd2O+@4mv<(sKC&+lE=pUJJY$a$yIZKIGF z(X#Q?J@xk^N^$P$It2ak8jtlUT-i(w&r0ezhrxBZ`se6Es4|9Z+~mH zJ7nCR%f0^piw|+K{JpbO4c;{&Kdtr&c@^g0DPmq~s`{#fC{(Iju{=B@&w3vO)-^f3V zOplqmZHg^wUtQkZt~%ecVwpkRhKG9(8F>6C)oncbsGzFB`%ksJ%foLgTOV$l*!i1P ztoQJTf@dyHJZxLvgoBdpU3~+o_RGuX{&qh3TfXajfwzN19_P;=lb9ZDSn{lEzPCi! zk*_P)b8#FAot0bTAhE5m{g}HVpY*<6201@0SowWr%&JlnZ@fr6C3o$r!yK7E1)o0N z=RNeHqBy=V#zE#-?7UBLi4|PC^{o^Y1cWX6e@!s3@w#<=rnZ4($HU2$GYvg-ey=vr zdHr&;uC~C@hhL|QbYEBcd|#~XXWG9b#Vq$kIv+0VI;t@7uNKeD$t!a??}&D83~hNF z<0^5^cF)%M#-quGu7y`7@cci+lQ?77zW%qd4;F5maVW}2<#7C-;Q06V`Z*8pZTk0T z9;=yf-&#ek!`Jj4eawkmpr&$Y!_$1{{A9nwtw~?8ViG@Qz!J&Zx8>9Jv aJkN%i{yHCCdoVCCFnGH9xvXhBX literal 0 HcmV?d00001 diff --git a/Assets/Textures/bubble.png b/Assets/Textures/bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..3387aece5b3a97934c1fc22c8dd94a91be45cfea GIT binary patch literal 1278 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE>C12U7785lGsmQLL3 z%~U9H+&(LChGK}b%YK`9$uPR-aEnRzZ%EE@V;T2&Qzbx9|vXeX8M(EP{Duh>#ucE-{;snmPFTGl$DV? z*m7mJ`9FqTCFw8wj{TBhU|`@Z@Q5sCV9-+rVaAH3_GJtV%x0c0jv*C{Z)f`Ei8%7K zvLETtnZ(M$**UpDjc{nF}~I5c&=l1J3hD0EdGuE>W1K1^H(;BFf2FG4;5%NsAV~K zaF0XBmdgxEj@sW`^pA)%WL)542s~@h;BCO4k;oAEXzFhzaa9%tp%s^Y^ptTN@HtR? z`}Y&Z9q}!0r~cpGd-m(qkJk$fb6##OvC(%eTXs0}U;K`#I^KzMx0aRgzOMScl0nCL z?USf#x1P;m-p$Xq|I**4W?Q^g#qR#!9IrilD{smiPnhOs-Z0B!EyJ~UGmp<&Yk6(M zuQivM(%&B6!|m{%ZAEi&lCtLsskO}?JHqt+I}fkrX2{<&<=;_;3|l^Ty-Oz<3m)B( z_pE!JX0=H^JBZ=Mk+nxs{#AVb_2KWUvx{T)M%`HR-A2e{-x3?P#77mS7I*H~)^ez; z$+Ly9KZ}-Mf6cz5zI9!FP3Fm&$(jr*UgxKrsgAmqv|-V~&qiXI!Hh0K7sC1Of8Ds@ zOct-doF;<>NJKz_W=m_3^BSzsf!Mxp1Lt^s$5~XCKwZ@BjSTbd&k+QpOV;=Z-Brer%`y#xGTp z=d-3WT}X>+i%yQ)JkKkZtD!eVB6V-Zecl7k+ow-Sy*KOqOSfaw?N|%aj~j0I=hrYX z)W2~lLzu+puob^K4z!qae4F!Ho#jEySr@%Clav?8*UL3r{m%4#|1pc76XWC4&lKx$ zyF7X2ynhQ*)HB=u9TS(cI(L0puEoH(eN_WvMbBozwhOD9UR-sb)4hw+Xvf8WC9Dbo z>$z5GCpd#aL t7M7^hT3Tm|>C12U7785lGsmQFnF z%@indtUfAmieg}Z%LMLjF|I@b-P2-uDo1!W-FoqZtA@we%j5O}U+#sjSC(C0^nbxN z$Jw{imKBEvEP7Y){LhbffBDk)F;*L_etPCx z_L8?_OP;mze5;e=zu5TiH$wJ)UKRKM{_o1*C~$cXn~@1k`T?iCKF zj|d%dKP2bOCbBQAYR@_SuFIwW0&-jqeNG6sjeRNBw|&Dj!=gjNhu+0(TVnbwF#eIp zv*}_>`A*9nRPkZ3*LyT2Lfu<%{gpi_-?ry(dKSGvLC*J{RVq*6l9L_Rm9so|sV!aR z;(u!L(ltf@=PsW)>(kZU)_*R1%!z!Td|@Z|)vnZ9`RK5(EVt%8FuMOmTxI!8|BKqb zXKOjm>00d1%KB)#<3`&;ciXfhSwXXNsJQw>JH%#q%$WO0z$8=Oz4S zIQDd3@mqHPcNuza&o1s|U|`@Z@Q5sCV9-+rVaAH3_GJtV%%+|$jv*C{Z)f`Ei5LpB zT6YLWPGA)j5>kKYBhz7AD5Rpo(!GJf_0jT0S6(a)Dckub{k+P{n>%*p?qBu&=DWN@ z+urVyJSJZ|1@f3`dR^5+sayRJv4nm1)1eH0=o-kU4iyle4Cfrb+k z!snPTKWdRxDRpChXM7sl&^EUo-nK{|N2VecEi%-(&+W=WejSXGp8GFwY$=h zbmij#*Ux+ZX*FD8zMyve&>oeg)nV?(zGh5)rStUY?@$Jd4=a!Li#2?=dK0 zp6IUiwm#9%s*`sy+&HxO(3bxNrF;MGsrkL2Z_PBHZN+jNYWln4nv)(C?9AP6e!u_a zl_wwDIFIc4emd)};~)Jmzpk76>(#F3Zb;LddFh`|cN9mM>4y0ChPMkY(49^ z_vf>gGi^w-Iec&Lnwt~nT8T19B}%y3hRHBVEL`pC_H1$8)tMLlYPnBLj_q^&@}9-8 zY}NJyAq?6*z3(o3;OOYQsIsVV-F`KO=TSDviOXadfB!no5c5}u<9{|!cmB`UuRAKw zh&Cpy+4p4eJBIT$&qS|(+UDTVW3iQ4B{5fAp`oYHq)EVQcf;0SlfDPqvk1oI&$-7q zX~h=qwD%0pPHAsgCmW!(WJ{`PR; zvWz|xg literal 0 HcmV?d00001 diff --git a/Assets/Textures/cardborders.png b/Assets/Textures/cardborders.png new file mode 100644 index 0000000000000000000000000000000000000000..fef93d019cb99f8c9550f58771b275dc99613dbe GIT binary patch literal 1924 zcmeAS@N?(olHy`uVBq!ia0y~yV02($U~u4IV_;y&e!fnQfq^kM)7d#7GdY=oL1SX+ z#NFP914NG1Z|lmJDG_)(VPTguYoLJpTIcCXOSK|OGn3?dlc^^ zifraS^!t!uIGf16fL(GQ7C&-2u)gc=$}bizA^vMWG=G)P5sCHQ;ct;OGxc$`+*egy z%j&A2tm$t!RJ1Em%qMH`8?(Bo9QCcWKTVR_){Xv_(C14Z?R+8{pT`w4_#UHXOZ`f zo2_v>@0B%yBS}&0?tbqCz-BkxoVJfX3bHqszY82bW2oEdxcu->zCd8ys|UYRp@^8C(9qJ zV=BM*iL)p$FmgCBFbOm;pfD%QJaG78QGI;8`}&K;{|>)i{d~v8<26-vGMD~;zkFKt zw|!lm+@=3duU}UE{l7xy^8eSTO@IIY`7iav-~T_}KG*zyzvg1#quuITW(LWq?yLTr z?o~MD$GfldHID{9+I_u#nTUJm`?z|3%~>oFr}L+@yt3TBpyyQJvvp6+y_~+ziT>;U zRHOL%Cu!A%Rp-|JTU<0{XZFwDNddOc!~O?ap1QO3kB!QftIPkcnYa1x=1=!#J)Xee z?v=i}y85kkzZ}eWw|2OM<$W&8^2Fxc6omXF-|evvvj+g$JGrOBuFuUFo_i9MO`U zDY`;5yXDM0NwCQ0TY~GBhAs$OBWP5ec10^d`&#w&cVZ7#842zQOx!VL*q48^7Keqe{u&m)cHNh{t%0joU#(ibJ}kUSzV?ppffubO`58GJ z99RSvco;Y_Fr5~3XgGbhh|8IQNvVOswMmdkAfk_fDdyd@UneqssgA*S>3#X5IRIvuc@uu>YsJZTF67EnE5BCi=X|!6%dN zi7fb3X&>!>z1OJ9K3d-^|LK>yZS&Sir+%s17B}VIshgj3Y-Oc0--snF2})^YU{Sc> z%)t09;E@D}gMum}%ZyLkg1DFjUMMy&RBIISuqaHJ#K7cJ8Li36$gxA9V;k?XC%XF6 zKdl$<1Tnv!k;#?zIr(~~VAGbRp$+pEU7ijz)&$%ZAsb1w0_-VVV_IK^a|L4pfEAD^3^!@+1pG$=wJiE_j*TTS}Fk!Ak z2lit z(sthay#0~#@7KBdD4c8eb^HYrboKh{l@^^`FE-u%f5xZPN1tA_pYF*k@4?kY1d7RXFpjLBQvFWM}_qd{vBH3 zUYbFZX7AqKz3pRl*%dFF%f|ct??3FRzR%iew6`$DfO z{l2h|Z@GBr*&B_Ud0*_>Uh2NyW9ug8n>u^uI7D+Fk@3Ps|*7J(_K#&$B+ufw~@JFCmXYl6mltTjN=ak&Pn5A%Gec1eyMU%vThR23WxN?NHeAilZ zFH*NK_frGcLruGn6PiR?9&hRue4yHFw38=lS3QgS6o#dpN1sg&P58K-YlBw3_k&Aj z`?O|ghaJrmO$h#{(BXUHZim<8vd>E&{U~le5>ssNaC50z|H<@?s%qW3xszBE8m27y zvezklAL}{>Gxjz;2fonguAABmmR>#8cr}ReRksUYfNF9S%ZGg|Q(0yjPxow?!%%c= z+aL2CTNyU*SU#8iNz9t8jq?K-SM7*p2%X37^Np+GfYNG_YStB>Y!WtwA7B=XTzW&> zVd`_n$qTu5e2rwdX0CEz?Rh32raOQ2IKmFxWwrQ|%E5GU^7Lu@#C9^dBc4sE?|;8|DK!1thr%A)H+4n!^TFBjDn3yfpkl?Au(p2_g z@%r=2TelxH=bSL5zayXL+m}S1TPN*~dv7s(%5U?`{Gjazk;cy|@s(eFpYoqsX6`tN zd+XMd$JhN+ap;&*y3eeVeR<_qf8hsCPh@3trk_r}khX8@F0P+bKCw%GcSt$yC#hIC zBjnzPJHjhhd}9Bm!sxNjtWcmJ%x+fA76ui*qtH-n_f*1E*Gdi;`)HCbHKSl}bd+b_I9oI21Ffe$!`njxgN@xNA Dej_U? literal 0 HcmV?d00001 diff --git a/Assets/Textures/cardhand.png.import b/Assets/Textures/cardhand.png.import new file mode 100644 index 0000000..23bedef --- /dev/null +++ b/Assets/Textures/cardhand.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dlqnhs8or4ik2" +path="res://.godot/imported/cardhand.png-ee31a714eca672ddf6e505fa756e2e32.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/cardhand.png" +dest_files=["res://.godot/imported/cardhand.png-ee31a714eca672ddf6e505fa756e2e32.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/cardhand.png~ b/Assets/Textures/cardhand.png~ new file mode 100644 index 0000000000000000000000000000000000000000..54fdca944cb7d5852d1c562c05ac87d9bd4a089e GIT binary patch literal 1173 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/dummy.png b/Assets/Textures/dummy.png new file mode 100644 index 0000000000000000000000000000000000000000..01371175dc353461e253360c0cd19990b24db72f GIT binary patch literal 1976 zcmeAS@N?(olHy`uVBq!ia0y~yU~FJuU@+idV_;yAs9Iacz`&TB>FgYknVihPpfRy@ z;%@K50V2oh*ZOaHl)x_7&ZEUAx}?b>OE#vom5rIL+uBrIyH-DVq+rpZw~y^V zb1Z8(t78C*pm}+G_mqltnp-;V6%^Oie6MSttS{jA?985Md#;~N&zGnP-MaIq>Dm`3 z?m($d;Y+^PvTpzRQ?#zjj$#&|`rx+pRvl(xy3SbN3YNFYvbuH_`sQLcenf z_vXt%yHm;^PfBWHkz#WVJMqv^VXMN-zi*}geDvLTzAxUcZI}BFjgY^qCtW_#{^EA% z+UE?n%pbhjv`TV!!9LEp{M+8Wun(I1W<%=1*P2_-Iv?lVqQe#$dd_lZ`^?gxuGcqg z=dUf=U;9$}Luv+-{4R$M1_lPs0*}aI28I|n5M~sa;_S%4!1~eC#WAFU@$DSnqN`Q{ zZp=s7BsPgH_P4X| zw6oVKFfejBFfa);Ft8B8Y`nn|cXV2R6~_{BDGThO{U(50`(Nm#H?(CKPI0hZ&?Nw`LJ_xT)uH)DulpwohQrGo!TNrA7{=fXa zef|8$fewZ&3Ji_XLKV4BfBt+D&!cuc>v(tCo|XfOjeoShY%t_K!*Sp)&(hP4ZSNVP z{61WI_V@Vz9|C7mxfHV48lRU=yvw`1^pMpI$JvI}oF#Lo1RG_m_fGk<^ti??@4G^a zHEx}*(OPe}_>ZcuF5AxS9v?fTnvd)j>-P9_)cxhbp#8rD12okd^KSNi$(5{6lfL*a zc7J*8tREfIx7)8@aC!Z*_20Kmd^F|9X)`ZIzmNAH?J2eS`gzOTwV}1_35q8+HJ#-M z>vr##`&LqYWw+>VTlq`JH&0i7dvbF+zvts=(@)%*Y<{!q`^Ka9gQ|lW1r(XG{R8;6 zrQX;6BiH{(b$@7F;nI>Nx3%9#t&^$T7{jpjXLbM97w3+DlbReR|Kj}O%-#2en7RL* zm1o+{aYSGh?mAr;7x(?ebi4ca zYJVg*TKsV|+;UmC`yQt`x5K^z`~J$r&SQ-F|AcdkQRO+7yt5NNUK4(CR{rJoUrH;& ze^y+r%xG*4(i>w0|c<2JhBw@`CrRj>qlZ@}bIqlHB?g z-~Yrt-FvmNShR1k-J)X;wO*G^*}sY*;vQ>^D#K##7jOQ>$urMAd+>J6V(y!><-Z(J zSfIs_baD|#h4s(nN0-+gd3w}ca`L_1GdBl^?byHLt8KKy^BT?gpz_>%OX^l{KmTTG zzjRpkwR7^Rx*4^RTf@Z}R(FQ?2J77mwVLr=yiufoh5E%6g{xEGKhyt7X7C+2ypL_gvbF5__e>95u5P(d?#i@WoI&iD=;asp=D8JDZTY|VG@hkb z*Dgc2nc-)exO&8^$TIN;>%)C-?r#1jmaCil<#dCb6w?t0=hNl4-!Um{GwEEA`C3}? zmBI)8#(96#&VmQ7d^I>O0>Z6KJqJi8SX9%0_c(sF1 zyg}@NZf?n@%vj|D)^pWz-|nsc_+W-@BZpzff{o@z*Y34(H%QzR-ugXGpXHb10p-SP zG5NXW%iQ~Co%>RMeWwps!-3VR0dFHpE(F@TUX`_t_xd~Wv4Cf_%3AH>BWoBsI%TSU zO*?x@X8m)a6@}*?8py)xCA$3HEb#{I!zzu}T+F4u&$@SOqp8VEQ>Mnv zpIVtVOyo^xO-Qbqd|2%Mj|`x%S-xmhs@SEid49WAw#2Jv zT5jE^ll#|gU8OIa#dw)FkoGV|x2B&jGiKDUOg8{`eR4%o@xi*-@>b*Oip zed}K>yGiof)CC?iFBVoXW(8?;WU65^;F$0ZxnSmSeZYP{*&xm5xqT4>0|SGntDnm{ Hr-UW|ZAz#n literal 0 HcmV?d00001 diff --git a/Assets/Textures/dummy.png.import b/Assets/Textures/dummy.png.import new file mode 100644 index 0000000..e1d1ce0 --- /dev/null +++ b/Assets/Textures/dummy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c8h7sihm5uv32" +path="res://.godot/imported/dummy.png-3d59eeab3b88aff19f41713bd8ef6b4c.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/dummy.png" +dest_files=["res://.godot/imported/dummy.png-3d59eeab3b88aff19f41713bd8ef6b4c.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/enemyhealth.png b/Assets/Textures/enemyhealth.png new file mode 100644 index 0000000000000000000000000000000000000000..ce98f8dcdacb33fa9896005b0d421efd8b0014f5 GIT binary patch literal 1539 zcmeAS@N?(olHy`uVBq!ia0y~yU^oH79Bd2>3~M9S&0}C-%*%9k4#-SSW?;~mSUS<# zo7qvM)m~V2(L|A`j))~4izYN^tXO*NkeWw_V2$ZXwb>k%I=iJ+Zg822HMM3uUj0En zL;HpnN0U;=jhnx-RMwOWDJq@R+5G+SnK`HLZhp}9WXqnbR;)jpa*w4Q{&#d~>i*|b z`F?#cI#}Sex#wkuiPPn;rT*Qk$`!A!{<*hpwei$#CK;LHa@Tn-i%rYySaZAWQSL)I z-PsTl(=zd4}_PA!Rbpf8Qw7Qh!j_blT}|{FFIr_OAC= zW;Z&2$UXEkG}imw!J}ed?4&r21E=2E6uXNrKmEd1mb=?8Yz#X6>ie9_>>c?h^mjG> zWtN!od*4<0?AsaEFR$8cU|?Y2EbxddW?;}$24TjErS@eE3@p~3E{-7;jBhU=L zVRig+-}sSE^g)YX+fUx!`CeL%ktx3M>))@Q4F`k;Iur#s7#msogc%!eFfWTmW literal 0 HcmV?d00001 diff --git a/Assets/Textures/enemyhealth.png.import b/Assets/Textures/enemyhealth.png.import new file mode 100644 index 0000000..4f8b93c --- /dev/null +++ b/Assets/Textures/enemyhealth.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://r202vo47jw1q" +path="res://.godot/imported/enemyhealth.png-06bafefa2afa5a94b9192b00e9045f10.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/enemyhealth.png" +dest_files=["res://.godot/imported/enemyhealth.png-06bafefa2afa5a94b9192b00e9045f10.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/eye_dog.png b/Assets/Textures/eye_dog.png new file mode 100644 index 0000000000000000000000000000000000000000..9f8214b2036681606bb38caa61f43d8f5c6503f7 GIT binary patch literal 1732 zcmeAS@N?(olHy`uVBq!ia0y~yU}RumU{K&-V_;zTyK>nR1_s9bOlRkS%;aPS291fO z6D_@&14UZx7Yj{a(W;~*rWv9mRKU3LO2iG8i7OJWs2QJBahjH>=Ge40Az3k^!z{1$ zzeDuFFh>Cq$0O(Nt(|CaZ#s*RO6B3%zYFhKPq$7#AnNl- zZoT%)B~RgG!MkSZVq#5KV(t4)R{VMpzW3Gr)jMx3HjHj>6MN`+cgvQxBs2!1E+>`O-hJvTq{wrHj!fu;KeK|W>uwO5KvduJ$M=D2N3!AFP zCI|6eO#Y;Da`m16&oiZkA1{43kHKWW)w$;aJH9X6@Z4hm^1fh;=40YJ{KEf8p3Hm| z{bg^LSp`q*?SjhSi(8m?+-lsHZk*)W6|^{Kdg6iOtR*cAf6Lvv<`p^hyk&jUQr(}f zvy0i?_iTDcizEC!e>m~=5VAa_UmYGn=ib4)vnvhTZ5)f1j*e*Ii8^6l^U`MNu^<({p1CjBv_cte?#dyPr_ z*_D;6K6-w>`p<4*Q;Ef<_kvB6>J}&KuU=7py!2A=Mz?wT`@#+?8z;nAmS5TUY~8oA zDg6EFe^f3hRwUG{Rnj;a-FW;~SzplSj_0Sh$G^XP{`~pGZ|{#ja6GbqQgX{#p>PX{ z=HnfkC%u0A_U&KIw_l%gdrS09-Q(PJ$aCgH5A#1P0V^`4r~?G4={*j~Q(kom*0+#v4r<%Wu9 zdY^lmTd`Dh);E)^HD_eQzGv|oKNm7yoZ9yKUUgZD=Zu-96QwlXuMoevT`G9p;&R_> zvEMiqxIAV_$ObnU9SQ6;Z)fYcRvB|~tFna>@Aj(N^fC>zsPxo5yQXtqud-h{k3pxg zY93E?%dT%HKL0mw5s$e2>QHD^vaVJ5JogCG7(Sz$#Bw@$EUsfrg>mOW8gyVYnpWRzC-cNlVe)ZkUMWzqGt~}$ETq#xZR`9v1d4qC` z+|iBIjYdC0X0P0CwCd2t4^L}a%LSU3A}e$+Tohd)kpmmPubj591CBWq4DJ)N}2x^MlW?GfRx zX%HPZF)`4TD$QBn}PD1EVXo-Ghbx3zBrOxI5F>iRax$)uf{uH z%5`7p5E*P_AP$%ax??bAiH>l9#!E zJN-CP=T-FGoFI1jY+DWfsN*&#R%{J8FE~#(H_Cr&dT;*A3!g=;!gfUVZ#7#f-JpI% zDS`3Di^2+t&9!3BwB){?PcwS8`a*K$*)!EvVK&~pa_wun``oKEZtK)-i+e5g@`CBj z&pOMVDwZ;Ta7kmWjJTOSZRh5K8Q)j!iil5h**j+^zgu0}*9CR%a~AK+vUxP)tJ>G8 zcNtVNdiSpmt1I1c-Ta|)Ma>=AJLjw${T^Ik`N#P6 W#(wdYD;6h$Dk)D_KbLh*2~7ZAw^9TE literal 0 HcmV?d00001 diff --git a/Assets/Textures/eye_dog.png.import b/Assets/Textures/eye_dog.png.import new file mode 100644 index 0000000..933fd75 --- /dev/null +++ b/Assets/Textures/eye_dog.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dj13g1w14mekw" +path="res://.godot/imported/eye_dog.png-2b08e774f06f7b23a123081bdacd558a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/eye_dog.png" +dest_files=["res://.godot/imported/eye_dog.png-2b08e774f06f7b23a123081bdacd558a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/eye_dog.png~ b/Assets/Textures/eye_dog.png~ new file mode 100644 index 0000000000000000000000000000000000000000..cc700987de0074a568b7d01352cbd4fb84e7bf15 GIT binary patch literal 1739 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 VJX~>bc{Zqm@^tlcS?83{1OO`gUF84( literal 0 HcmV?d00001 diff --git a/Assets/Textures/eye_dog_boss.png.import b/Assets/Textures/eye_dog_boss.png.import new file mode 100644 index 0000000..88dffa7 --- /dev/null +++ b/Assets/Textures/eye_dog_boss.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c070a2dbkw55e" +path="res://.godot/imported/eye_dog_boss.png-f98e154c9696724f63bbab7ab14fd483.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/eye_dog_boss.png" +dest_files=["res://.godot/imported/eye_dog_boss.png-f98e154c9696724f63bbab7ab14fd483.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/eye_dog_fast.png b/Assets/Textures/eye_dog_fast.png new file mode 100644 index 0000000000000000000000000000000000000000..37b15dd225c0899309024ed510494db5e9727193 GIT binary patch literal 1728 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/g_assault.png.import b/Assets/Textures/g_assault.png.import new file mode 100644 index 0000000..43fa149 --- /dev/null +++ b/Assets/Textures/g_assault.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://celay30i4soud" +path="res://.godot/imported/g_assault.png-18634d790d834a408188c873cb3b1336.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/g_assault.png" +dest_files=["res://.godot/imported/g_assault.png-18634d790d834a408188c873cb3b1336.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/g_sniper.png b/Assets/Textures/g_sniper.png new file mode 100644 index 0000000000000000000000000000000000000000..286c284f7ca3bd5a1c60a7cd09184bcc79db9f20 GIT binary patch literal 2702 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/g_sniper.png.import b/Assets/Textures/g_sniper.png.import new file mode 100644 index 0000000..5200106 --- /dev/null +++ b/Assets/Textures/g_sniper.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv2eycs1j0ho7" +path="res://.godot/imported/g_sniper.png-540afb6cf2bb7c1448f9a3771f0c56fe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/g_sniper.png" +dest_files=["res://.godot/imported/g_sniper.png-540afb6cf2bb7c1448f9a3771f0c56fe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/gauntlet.png b/Assets/Textures/gauntlet.png new file mode 100644 index 0000000000000000000000000000000000000000..6efeb66953482c9d7a1ce5616eed148a5f089d9d GIT binary patch literal 3411 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/gauntlet.png.import b/Assets/Textures/gauntlet.png.import new file mode 100644 index 0000000..cb5a3c7 --- /dev/null +++ b/Assets/Textures/gauntlet.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cu1usmlhagpte" +path="res://.godot/imported/gauntlet.png-26b4bf1ad5fbad7b55ce01c74b36db4b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/gauntlet.png" +dest_files=["res://.godot/imported/gauntlet.png-26b4bf1ad5fbad7b55ce01c74b36db4b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/glue_gun.png b/Assets/Textures/glue_gun.png new file mode 100644 index 0000000000000000000000000000000000000000..2d6b0f0991653af56bd91c483afcbe678d2e7fab GIT binary patch literal 2363 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/glue_icon.png.import b/Assets/Textures/glue_icon.png.import new file mode 100644 index 0000000..2dd9673 --- /dev/null +++ b/Assets/Textures/glue_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bpixdxdjnr5tw" +path="res://.godot/imported/glue_icon.png-21b9eb3ddf8649e750f774f343b60139.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/glue_icon.png" +dest_files=["res://.godot/imported/glue_icon.png-21b9eb3ddf8649e750f774f343b60139.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/grass.png b/Assets/Textures/grass.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0ffd18a15f2ba429799bffc1e8be6bf7725b48 GIT binary patch literal 985 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 Nou{jx%Q~loCIAOBA>RN1 literal 0 HcmV?d00001 diff --git a/Assets/Textures/green.png.import b/Assets/Textures/green.png.import new file mode 100644 index 0000000..b1a2244 --- /dev/null +++ b/Assets/Textures/green.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dyqh1uu4pocv1" +path="res://.godot/imported/green.png-1858fb7b418df7714b6f9cb16192a802.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/green.png" +dest_files=["res://.godot/imported/green.png-1858fb7b418df7714b6f9cb16192a802.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/grenade_launcher.png b/Assets/Textures/grenade_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b34fdde17fd456303bcb28052448b5635aa9da7c GIT binary patch literal 2362 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 SMOOv}1_n=8KbLh*2~7Y3#z;W` literal 0 HcmV?d00001 diff --git a/Assets/Textures/gun.png.import b/Assets/Textures/gun.png.import new file mode 100644 index 0000000..46fd676 --- /dev/null +++ b/Assets/Textures/gun.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ctjktwiq2fcjm" +path="res://.godot/imported/gun.png-6adaeb1547ed5ef4c0cdeaf82c51750f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/gun.png" +dest_files=["res://.godot/imported/gun.png-6adaeb1547ed5ef4c0cdeaf82c51750f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/gun.png~ b/Assets/Textures/gun.png~ new file mode 100644 index 0000000000000000000000000000000000000000..bc7b1120577907458fc55d5972cf40684bb19438 GIT binary patch literal 2662 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 diff --git a/Assets/Textures/icon.svg.import b/Assets/Textures/icon.svg.import new file mode 100644 index 0000000..0ec1b1d --- /dev/null +++ b/Assets/Textures/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c5tgmdqqpg2x" +path="res://.godot/imported/icon.svg-8c0dfe7377b8350deb604d8d5f0f7e7b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/icon.svg" +dest_files=["res://.godot/imported/icon.svg-8c0dfe7377b8350deb604d8d5f0f7e7b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/Assets/Textures/icon_eye_dog.png b/Assets/Textures/icon_eye_dog.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e9060ab7f3cc645865fe1a4b076bf564d22483 GIT binary patch literal 665 zcmeAS@N?(olHy`uVBq!ia0y~yV31^BU=ZbCV_;y|tnDhnz`&T7>FgYknVihPpfRy@ z;%RTDK#^nhQGrtw0|Q(paCeJwB?{=C7RysP!n5htiyvGyJjPxgw-@+wFLb@K?E0er z3${7lZc@-_>L`0#o$Iu$I5c3J~8>Sf+9TGnDE@s;j(`SM4 zk361D7hB4ATJE5V4}-nlqbU*U-h%6|>`D2yJ%7`)=miRLzW1zBc?y@D?6|I+<+)33 z=`t7pQ4F%W+QEVt-cFN824Y+7`OorX9%&nw?Xv#hRafLAv!{^ozK)=~peDe_>Rb{i!=I z;XlK%r~8WEvirZw&~tlsaW4Y{180FpWHAFnj2j3uicE2KWME*p=;`7Z;=!Ao($I8` z#*K_AoHjc)?37tIi-T>`!xyI>PFvs|(9FNl;-S5;DUWi>F@r5FH&i?|GB%uS zo@}sH=fJc>JiNS$KU<=vE%?neMb{yzVzPmcpogL%pJN#RC1z%yBN=U)YA%nBvL)0K zzbrT)y6?oRjzH$1exZ*?vXrhWRRs305tNp;4e~4$h!phiVpU+DoXTl7|B)~=!*O|6 W{n@X(A22X5FnGH9xvXFgYknVihPpfRy@ z;%RTDK#^nhQGrtw0|Q(paCeJwB?{=C7RysP!n5htiyvGyJjPxgw-@+wFLb@K?E0er z3${7lZc@-_>L`0#o$Iu$I5c3J~8>Sf+9TGnDE@s;j(`SM4 zk361D7hB4ATJE5V4}-nlqbU*U-h%6|>`D2yJ%7`)=miRLzW1zBc?y@D?6|I+<+)33 z=`t7pQ4F%W+QEVt-cFN824Y+7`OorX9%&nw?Xv#hRafLAv!{^ozK)=~peDe_>Rb{i!=I z;XlK%r~8WEvirZw&~tlsaW4Y{180FpWHAFnj2j3uicE2KWME)8;_2cT;=y}2*pZJ( zk%#4x_MOS^FHYwFy5#-M$-jBeN-RIP?CzAQdk-vK>SOJ!X<2){aM#`!`scHk-9Ie% zPcw*n^Q(Y08rL`(A`HbYr}t!cTj_POxqt8f?YZFj={XKcZ#PZhwt8^osOg>;4(Dw< zE?$fE)TnTn^ul8ktM0eU>*QD@!n04>zjS;gsG#>hg|}sMhro($ucmlxnwoKRPZV?C zhJE|4-FgYknVihPpfRy@ z;%RTDK#^nhQGrtw0|Q(paCeJwB?{=C7RysP!n5htiyvGyJjPxgw-@+wFLb@K?E0er z3${7lZc@-_>L`0#o$Iu$I5c3J~8>Sf+9TGnDE@s;j(`SM4 zk361D7hB4ATJE5V4}-nlqbU*U-h%6|>`D2yJ%7`)=miRLzW1zBc?y@D?6|I+<+)33 z=`t7pQ4F%W+QEVt-cFN824Y+7`OorX9%&nw?Xv#hRafLAv!{^ozK)=~peDe_>Rb{i!=I z;XlK%r~8WEvirZw&~tlsaW4Y{180FpWHAFnj2j3uicE2KWME*p;OXKR;=y}2dR58}o>HWUKr9d^{ zztf^)fmR+DukD{?aFcgZh5IDkjuYoO`juArhM%)sd#fUv_nQ;{^+n!J0y4H&wc<{u z^>4QN@+E8yZ{LPo=hgeWJ|{H%udG-fJY~h7S64SKyY1eqvgO4?WfqSLLC>|9=Dp<& YXmXksv$O3w0|Nttr>mdKI;Vst0N_F}SpWb4 literal 0 HcmV?d00001 diff --git a/Assets/Textures/icon_eye_dog_fast.png.import b/Assets/Textures/icon_eye_dog_fast.png.import new file mode 100644 index 0000000..61c07d8 --- /dev/null +++ b/Assets/Textures/icon_eye_dog_fast.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv5p03aw78vwd" +path="res://.godot/imported/icon_eye_dog_fast.png-0a08e5ef41b3ff60b195f0e078e24ab8.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/icon_eye_dog_fast.png" +dest_files=["res://.godot/imported/icon_eye_dog_fast.png-0a08e5ef41b3ff60b195f0e078e24ab8.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/icon_eye_dog_heavy.png b/Assets/Textures/icon_eye_dog_heavy.png new file mode 100644 index 0000000000000000000000000000000000000000..b7e173c230d5d45f976e3f55fca8cf57231da533 GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0y~yV31^BU=ZbCV_;y|tnDhnz`&T7>FgYknVihPpfRy@ z;%RTDK#^nhQGrtw0|Q(paCeJwB?{=C7RysP!n5htiyvGyJjPxgw-@+wFLb@K?E0er z3${7lZc@-_>L`0#o$Iu$I5c3J~8>Sf+9TGnDE@s;j(`SM4 zk361D7hB4ATJE5V4}-nlqbU*U-h%6|>`D2yJ%7`)=miRLzW1zBc?y@D?6|I+<+)33 z=`t7pQ4F%W+QEVt-cFN824Y+7`OorX9%&nw?Xv#hRafLAv!{^ozK)=~peDe_>Rb{i!=I z;XlK%r~8WEvirZw&~tlsaW4Y{180FpWHAFnj2j3uicE2KWME)8;OXKR;=y}2*pRP5 zfk))A_MMvk+5DxCZS(4!i;rb*&|IdWw`t3i?Dra~CeLU6u3K!sHhV$*;j;X$C5P5n ziD-9~GBJep9Q`8s_|_u7X)euse=E8*>OH>E;BqTfQ+&%|&+hDs)y$^f72KljRTn;x zpH$&KNmpZ|`|d1(gqXFe|Cg|N_AwOxR4-SUQ`zFMHFWt`mFUheo$%M~%4^oof1Tg; zIiX>{%^vfWQ%=lj+rm-%cZF(`oNWy!ql=x=!?%0N*xlmXzi(!&y~V)5z~JfX=d#Wz Gp$PzEaw7x) literal 0 HcmV?d00001 diff --git a/Assets/Textures/icon_eye_dog_heavy.png.import b/Assets/Textures/icon_eye_dog_heavy.png.import new file mode 100644 index 0000000..5174398 --- /dev/null +++ b/Assets/Textures/icon_eye_dog_heavy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://08n5jvq5tptf" +path="res://.godot/imported/icon_eye_dog_heavy.png-ba04528959a64035e32de54c20620c3f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/icon_eye_dog_heavy.png" +dest_files=["res://.godot/imported/icon_eye_dog_heavy.png-ba04528959a64035e32de54c20620c3f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/lifebar_bg.png b/Assets/Textures/lifebar_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..8f8d009eeb04fac588d2828d0648ec191deb4047 GIT binary patch literal 792 zcmeAS@N?(olHy`uVBq!ia0y~yU^v6Tz#z`S#=yYfetUr&0|R4Trn7TEW^ytEgT}VO06Sn#}EzFqxai≪YN{+ z`oo7A?5a4_Oi$0~I=bl3?tStFE34$g_Ws*{y`*%R@iew|d=CrH8ssLPGO9J=vc{Ny=m z`&{m?&2DyoaKEYh^{#2R+E3@cs5P3Dwn=I0iL%#Ld*(OmGsc!bh+LNzYW@6;;4|~5 z;&%@nROC5X`~Q@_#(@l(jzXyb1_lPs0*}aI1_nK45N51cYG1~{z!>1^;uuoF_;%K5 z-a`fgterc7_M z#Y>-mzucoXv!Ow-@uYl3_>|+X_iEhz{WZw0-GY@>{|v{MmPqAO6WAZ|bbh$kdB9`F zQqfetrXve)otc(A0ZEDRTjti4qC#tSfWo+4aCu~xe zQiDNYN@unwL!!?1sY@1dY&rCyzeXhP(Jn!cIbVxz2Yu>Paqt%NoPMK>rORMTYFV|n z6C;boS{a6^6ZWz6dFk4p&Z+cq6YWk{5lkyl2+;EJTc&;H)?*_f)#J|7d>T)8I`~Vd zZgZ1y5wvwnXPSIS>C12U7785lGsmQLL7 z&6Fr{+&(IB#-o4$mlkKYW+xGs^)w6zWx30I{A6O<#sHtT$`}f&uL-C?2j`&5)3zrWYix% z%wSi=p=Nq|M%U3re|GPaFIZV6AGY`3{_7>B%Z#V7t>b%Gc-9~{ac0|#UAY?f1m9gN zI=SV;#)1=57+dqF%v<$o^`o4r_M)>tf6OdcJ+Co`dAU@?>6xq#6CWOQ+PCEDv%vUA zXGO%HE%|ox-EpOJJc3M1G&Xw4&E9ZjQOdPD=0P9NZc>x;y~id!46r~l0Tz2&9XmVI|y@b+k-UDJhq>`!Bl|FkTe^GS1y&Ee3E@8T!VQQPNo ze{FWN`-A&U-LH2|yVZU=_eHJIq_j;+TThg|w%RklS)Vbs{6XZpv{38kZv>y2KNY`w z=%6Cc$=d&?^feA-$aEA+1u!r$a29w(7BevDDT6R$#Zvn+1_lN(PZ!4!4%y_GwAAnO j8M$U8@CfuCVr1|&XHwpsa&{8~0|SGntDnm{r-UW|z&6(< literal 0 HcmV?d00001 diff --git a/Assets/Textures/lifebar_pip.png.import b/Assets/Textures/lifebar_pip.png.import new file mode 100644 index 0000000..fdf1a48 --- /dev/null +++ b/Assets/Textures/lifebar_pip.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://0ey8r48lgjw1" +path="res://.godot/imported/lifebar_pip.png-b3e6bbe395302ee5c47f1dcdc6428bb0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/lifebar_pip.png" +dest_files=["res://.godot/imported/lifebar_pip.png-b3e6bbe395302ee5c47f1dcdc6428bb0.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/minimap_enemy.png b/Assets/Textures/minimap_enemy.png new file mode 100644 index 0000000000000000000000000000000000000000..dae7868e9bfcdae4c79ed7d5f31e1ed627128db5 GIT binary patch literal 743 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25W>C12U7785lGsmQJ+w zJ{%y@Hs8(lV>6#shegVYM+uH1M*?3z2y)3{U9IPPYl~Bq^CYE5T01N__!f1?H~)7C zKN#vLAmVuB?A`UQD)X{i#WM4ESn|K$`~Kk*-i*TAIu*T-12lf+C21`?zg+CgGx4aG zOPPD$ZFy-aY;0WkYTbEjr&agdLf8NLp0#e9&oyJkD@rz5R_pY2E(^qel|34LC^pS* zuArTWTuG|KL+z!~sdZs2E_*c5B@|5;%CrFpvN z&U(F_c(>cVNi*q%#FU6*$JDj9YRtU)jrZ@bWs!pYn)&UfF@;Y~be9KQnN)JtYpcuo zQ^}i`75$&TJiV7^`tI$=7rfNuxc6&8CHubZ%@1B{aO~?}_)t)zsg*@ zWgIG)&*^E;+Q|KU_JzL>mfZca{)$5MW}OP#);^Jvdk(LYELZO@_IszeQ*ZwZsc+vF z#=mQyUdM22d-@M%(`oGt3=EtF9+AZi40_5S%viD1zKnr^QQp(VF~o!S>9o7NOo{?6 zS8sHSM$DKRF+((>H_hkSCidUlcP8&?IDM{W_W{*;e*ewR<@_kzU%O-4=g(j76{YOi zl(+X`WiOA0lx9OzZ{fwJC?2(W6PJBV$~5pb`rtD$)qv~6gL`sY_H0tzz}mmyLgAaZ z99IwKvI!TB#Ba$;H1;rlTIKAt@NM5N-xW-oe#RabS@$L;`xwjO2GIguu6%JD?(GXS zKWN-(KD4r<6nOOYe`?jPLF=eWb zZ*RSw;kH)e7jNv6w^n^Df+6oNYZo&GmB0AK{jsZMdUAw)8Uq6ZgQu&X%Q~loCIEjx BSjqqZ literal 0 HcmV?d00001 diff --git a/Assets/Textures/minimap_enemy.png.import b/Assets/Textures/minimap_enemy.png.import new file mode 100644 index 0000000..861feab --- /dev/null +++ b/Assets/Textures/minimap_enemy.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1fn60m6xfcsq" +path="res://.godot/imported/minimap_enemy.png-2bceafa30e365833d70abe194a0b5124.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/minimap_enemy.png" +dest_files=["res://.godot/imported/minimap_enemy.png-2bceafa30e365833d70abe194a0b5124.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/minimap_enemy.png~ b/Assets/Textures/minimap_enemy.png~ new file mode 100644 index 0000000000000000000000000000000000000000..16a1dc13317b537ac3055886510cc8ba8cb6441d GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25W>C12U7785lGsmQJ+w zJ{%y@Hs8(lV>6#shegVYM+uH1M*?3z2y)3{U9IPPYl~Bq^CYE5T01N__!f1?H~)7C zKN#vLAmVuB?A`UQD)X{i#WM4ESn|K$`~Kk*-i*TAIu*T-12lf+C21`?zg+CgGx4aG zOPPD$ZFy-aY;0WkYTbEjr&agdLf8NLp0#e9&oyJkD@rz5R_pY2E(^qel|34LC^pS* zuArTWTuG|KL+z!~sdZs2E_*c5B@|5;%CrFpvN z&U(F_c(>cVNi*q%#FU6*$JDj9YRtU)jrZ@bWs!pYn)&UfF@;Y~be9KQnN)JtYpcuo zQ^}i`75$&TJiV7^`tI$=7rfNuxc6&8CHubZ%@1B{aO~?}_)t)zsg*@ zWgIG)&*^E;+Q|KU_JzL>mfZca{)$5MW}OP#);^Jvdk(LYELZO@_IszeQ*ZwZsc+vF z#=mQyUdM22d-@M%(`oGt3=EtF9+AZi40_5S%viD1zKnr^QPEwfghYWaF z8pBp}8m(wETG1Jm!1v6kYiIWo6?wM$DJL$iOFi`PL;mX%jq=-1Pd@+rb?qtR?WTQy zCNmvV+PdG}uZ!_s@VbbwJ=0@656(OCuDrB2BX0AHnMWE7ESavKn*Qs__198&4jyZM z6l<8YUu3r%mr}z{31iKy^l;hPjOST4?)#mi-nZZs%Zl*Q6RR1$lGu9>^oi`*RN;AV z>b9ePeSda5%I&GH$oKVWm_6b5Op(%WtJRiBYX=$J7EZs+6g6@C5mC(}5i|GHT=jd! zvhH8;nn$759#eKnnb%fb<&tQf!w`6N+flwp4kwCt-m6HkEL=KKNZk0C&zmmB{^g~c z4BuBI>^-`!VS#DTH!ZV@m-jQfMT)NHAI&K6owH0z^!e*mp@E?vgiH0e-kLXWKl@?> Q1_lNOPgg&ebxsLQ09}e-wg3PC literal 0 HcmV?d00001 diff --git a/Assets/Textures/minimap_node.png b/Assets/Textures/minimap_node.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3839d03c79ac9a6ef8bb1d29fb6fbd5bb423c3 GIT binary patch literal 641 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25W>C12U7785lGsmQJ+w zJ{%y@Hs8(lV>6#shegVYM+uH1M*?3z2y)3{U9IPPYl~Bq^CYE5T01N__!f1?H~)7C zKN#vLAmVuB?A`UQD)X{i#WM4ESn|K$`~Kk*-i*TAIu*T-12lf+C21`?zg+CgGx4aG zOPPD$ZFy-aY;0WkYTbEjr&agdLf8NLp0#e9&oyJkD@rz5R_pY2E(^qel|34LC^pS* zuArTWTuG|KL+z!~sdZs2E_*c5B@|5;%CrFpvN z&U(F_c(>cVNi*q%#FU6*$JDj9YRtU)jrZ@bWs!pYn)&UfF@;Y~be9KQnN)JtYpcuo zQ^}i`75$&TJiV7^`tI$=7rfNuxc6&8CHubZ%@1B{aO~?}_)t)zsg*@ zWgIG)&*^E;+Q|KU_JzL>mfZca{)$5MW}OP#);^Jvdk(LYELZO@_IszeQ*ZwZsc+vF z#=mQyUdM22d-@M%(`oGt3=EtF9+AZi40_5S%viD1zKnr^VW+2yV~7Xu+i9l-8x(k4 zj)uKCVWe}y=*@|!l0};(pQ!Vw$+UR081K3Jlp*be#OGb|lDT&_=}vy=`9%3<09T2m zCSzcM?iDdXp$CooS(ZKE-ykBwl=GZtTHCGM*Xhf0l)%l0S> zthdej*unTBP?_`NEuB~L_xvn;)<$!km%nPvHsy@bjW`#sNmJ#k8$4X!Nqs(`@*sN$ wx2l_fkA21!E)K@`bK?(WXo*f>N;)rmp3^eB^wP#s1_lNOPgg&ebxsLQ00aaYDF6Tf literal 0 HcmV?d00001 diff --git a/Assets/Textures/minimap_node.png.import b/Assets/Textures/minimap_node.png.import new file mode 100644 index 0000000..8aaa4a4 --- /dev/null +++ b/Assets/Textures/minimap_node.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ba85u6i558x4w" +path="res://.godot/imported/minimap_node.png-d61d29a3dd693a73784cc7f586bc7555.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/minimap_node.png" +dest_files=["res://.godot/imported/minimap_node.png-d61d29a3dd693a73784cc7f586bc7555.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/minimap_path_visual.png b/Assets/Textures/minimap_path_visual.png new file mode 100644 index 0000000000000000000000000000000000000000..626ebcfa7005dfd33458da07d5df2e4abfed6abd GIT binary patch literal 592 zcmeAS@N?(olHy`uVBq!ia0y~yV2}f04mJh`25W>C12U7785lGsmQJ+w zJ{%y@Hs8(lV>6#shegVYM+uH1M*?3z2y)3{U9IPPYl~Bq^CYE5T01N__!f1?H~)7C zKN#vLAmVuB?A`UQD)X{i#WM4ESn|K$`~Kk*-i*TAIu*T-12lf+C21`?zg+CgGx4aG zOPPD$ZFy-aY;0WkYTbEjr&agdLf8NLp0#e9&oyJkD@rz5R_pY2E(^qel|34LC^pS* zuArTWTuG|KL+z!~sdZs2E_*c5B@|5;%CrFpvN z&U(F_c(>cVNi*q%#FU6*$JDj9YRtU)jrZ@bWs!pYn)&UfF@;Y~be9KQnN)JtYpcuo zQ^}i`75$&TJiV7^`tI$=7rfNuxc6&8CHubZ%@1B{aO~?}_)t)zsg*@ zWgIG)&*^E;+Q|KU_JzL>mfZca{)$5MW}OP#);^Jvdk(LYELZO@_IszeQ*ZwZsc+vF z#=mQyUdM22d-@M%(`oGt3=EtF9+AZi40_5S%viD1zKnr^p~KU~F~o!S?PN#31_d6L zi$8?tKfW1W_04h*>*IyuNw*e0OxhG9<#h9A-U1O_)dej7<{g+M`Cv`?>-Vw04VP^F z%5?7^_lvL9={HncFP#*e;gsvd6u-7IP1ViWK=9-YzJrp1MeYfcE=`$dkoC#b$nS!E xU8{SXxncJ~v(S_V2Vd_{P7OxY30@BvlMcx~`LtHNh=GBD!PC{xWt~$(69Dji2Ydhk literal 0 HcmV?d00001 diff --git a/Assets/Textures/minimap_path_visual.png.import b/Assets/Textures/minimap_path_visual.png.import new file mode 100644 index 0000000..e31cd71 --- /dev/null +++ b/Assets/Textures/minimap_path_visual.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cy786nrpcdr5o" +path="res://.godot/imported/minimap_path_visual.png-8b70bf7eef5ad033c50356b9c59e3808.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/minimap_path_visual.png" +dest_files=["res://.godot/imported/minimap_path_visual.png-8b70bf7eef5ad033c50356b9c59e3808.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/minimap_player.png b/Assets/Textures/minimap_player.png new file mode 100644 index 0000000000000000000000000000000000000000..87e2646c1bbe808e9445ff53925d5e89d9dfccf4 GIT binary patch literal 694 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 z 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 X{?z}0N?$4i0|SGntDnm{r-UW|m;F1} literal 0 HcmV?d00001 diff --git a/Assets/Textures/radial.png.import b/Assets/Textures/radial.png.import new file mode 100644 index 0000000..dc70161 --- /dev/null +++ b/Assets/Textures/radial.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://gh4yvnerf1f5" +path="res://.godot/imported/radial.png-4275bf8b3469ef399dbaa9c86a28c9ed.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/radial.png" +dest_files=["res://.godot/imported/radial.png-4275bf8b3469ef399dbaa9c86a28c9ed.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/ready.png b/Assets/Textures/ready.png new file mode 100644 index 0000000000000000000000000000000000000000..478e7d3ff406dbd3cf2657a7d52319b86344ebb2 GIT binary patch literal 959 zcmeAS@N?(olHy`uVBq!ia0y~yU~phyU{K&-V_;xdG`FsWfq^kU)7d#7GdY=oL1SX+ z#NFP96GV>sM;{Ge+RUZIC%LL)ivri96{RnNmR#Wqi=AYW*}8<+vr8oW;L(K-6n6cP z`omu$8Y9Z$DClzMPOWaxBhTQBiQn4vzaRhkZs(ml4F6ixUWXmGSsx&5n{s~O6s}a>~c9M`|qye-}{VhZshAfaQ8c~ zdCK?QA69HV@#E_6Mf(|}ni}F`k3ACIkf5un^qlLj6GKCqXTu5OQ!$($RNmZtYuxzX z&im;64>Oo_I3qjW*k~4{=s#G0{J;A>Q3EHY!_n)ndmISUYkWRqS%a<6Ij;5P@-?%W zjD#fQEbXp-IcIE>#l`8MARo_vN$UB|6Xh^0&L%73k4T?b>cLk#=d-xWO38iKWn3wIfhot<+0cEvm`#=^ z=K&YCqqhBu?_M0+y?^V!-}fJ`b*S6-RjQ!o%RI(yWdYC6p7EW_ze)59nk8jOBU$}#x zbHjo!?Edk}D@FT1&U@yV!TD>K`u4uue|#StBqD^0_K2&0oVZW?lJN7jPq`8#JTEkD zdbZ_}YWkA?ju)-RcP(S!W;qxrF;9MOyJ^%~RYm6htzk?%Dp*n(O6HxZS@YUdY+|eX zzo`uQ7tj3g;atJ4^zDH1@esxc1|hfk3{PaQF5{L6eX+)7;eE! literal 0 HcmV?d00001 diff --git a/Assets/Textures/ready.png.import b/Assets/Textures/ready.png.import new file mode 100644 index 0000000..ecee6c1 --- /dev/null +++ b/Assets/Textures/ready.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://m4ehy5bahsup" +path="res://.godot/imported/ready.png-324a1676aa713b3c113f6947f317204b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/ready.png" +dest_files=["res://.godot/imported/ready.png-324a1676aa713b3c113f6947f317204b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/red.png b/Assets/Textures/red.png new file mode 100644 index 0000000000000000000000000000000000000000..dbdf8fb47911c675c12c8d2c07ee398ec8100e5c GIT binary patch literal 5060 zcmeAS@N?(olHy`uVBq!ia0y~yU}j)oU`XI#V_;xdHCNP=fq^kE)7d#7GdY=oL1SX+ z#NFP914NG1ukBjj)x;MiV-!*tAi!F9#cGF$=GLar>1y8;O$=3ZgJM|4*$+CFd^G(b z|3Yhr7Dtm($Bv!9qg)>C49l4Kt!?(_$Gg8<UoS4p3d_m^cx*u75Q_N_mUG+q1Q zWNd39xI{T~$F~#{sfEve?K!;s)!PZLLVw3yy}D~o5$^|6&VI>llf|cHcC2}tdo=n` ztee?Rof-|B7bhAHg?nB1{$onruxt#ss94C zyVtbxEvRKar+0eRKJMqUFZ@kVpZjEei2CjMeurOcZc$zEnJr4pJM!<`;v)W!r9WM- zZ`jWNw`hOuOZJyH(*L`1GfOZqFmM)lL>4nJa0`MkV|_~eL0_+ zvP!VwVXdC~1D6=TLyi^>>IRbKhe?Tf`jtE@KRG_A(IcLPDy3&?_C%F zuh_uA#Gx>li39blb=H9o-^bVg@?Uws{`ar%6O*-i+aGg0VR@9@U^!oSR(+4m8S`^n z1$I9_S8V$vB&Xl@DMNkq>zFNb?B7{x?oPHW?yOt&*O33T>Yx4pe(FzZUSI#`_5AcSdG{XMU$-~^uFC)Nmb2cQqK{AJZF7=^%O_4}9(O$IuU?b%*>2u{%imi>izaq`sTZs6t-jUuL{aAX zE|1bL^HtdwwwduClq=r5aodt7O4HeAzTc5;`ugd-J;hs9*&p8FtSs2gn9+J(Ras_o z%bW>4mn6z$r^~c_E9UlF7yn51T;e?8SJrAfD^4}vcziE?&g!Lw=dUV@TTb1Uy!Tt7 z_7lZx8TI#PGvB$rHrv!>C&#-r|4lvbR`!-_Uef&hpMNRi8yh>O`QLuOY}C{}{XCwj zkS~hIIZ{*Ku+H`AT_47c$M1$kJ}dUVGS5o)qvmR11%9jLF`AL?RXj`kj+{99d`29D z``)Rko->cHHLQNUb(?Y2y{BvnJg-C!Tx6+OXFrK~<>^DI(-RG^x*UmJY_gxHQo=ZI z=I3PHKx=h_SLe51w7j}4c~e_UOvWe0r?;aPe&Jz!zq4RB%rgS+cWEb_AoHL z7kcrN&C;gg+m-6+cm7?R^MU7e5%UK7(k~2*ECLP*?F{_-)>kqwuXcECep210qH625 zH{sd$bZ%cemc+bZ>LM8?4uuOE2hQ#g?0E#TGp#YYj=Pojz_ZS0J1gblY|`8J%~d+E zUg+(45z8C%nX4|SAE@1NKDT_W@TX^0%n6Jcg2~@qZe84Wl-Kx1^pTr}b+=p;I9h(5 zmfBRNw;^rK*JY+G0y}~ad}TYJrFth|jY{Wc?}qjZv7ff=_CAnwF8as~(|>c{M*Xqv zNjSf^JY6iadV9n7pZ{O+GIalc_wxVI{cam9SQF2ko`2N$vJ8_R>z?~9v5Wq$55D94 zJ#BgUyKmQSTSrC3>pm!BRuHZzVVq>KI`RI6xDC=@>zfaECUfjee%GIV?$PWEALH(b zJ3f1N;+JvIce{`01-t)05B#hC=4;rjNflXB-kjcZ_wHM^19nqg?kE~mDc`*K{POK1 zf4=Zss@G;**IIWnaQDSue{GkmF_|%`{|TO_tX#U6F@aIiQ@1o<1+_T}32+rO(!zDqZJ5UA%$oBMl@P|l)rrzLIO7#LaH zSbzN1U)*%XKJr0Zy8L(PhKZa$t?N(f$4L+kN@1Ta?6@I20auCOrB1 zamv>Ff7udLIOnNdep&l)xxw=E3IF;z=4@Kf-*YiL_RZe3wmQXz11Fi@nKLkMf6k^* zdc$FkjqOWoP`c1R@aum5aeukrZ_BQwoV)$vzQO<4dfv#>$E<;t%ermNMC{1j%1IPHJp(#+bDy^I`7bRMPq=~U%vU#Jq!xNC6Z z+qc?_5$)&BX1?B9{LbU0B@;&k=ba6CJMJ??s7|(c%k+?mqrT!t=Jwfv%{FHOYWpe= z`#y+FxF5+~y>8~eKO4V&za4q~%DH6C^uo6h{f!m>SnlL8=%{Z<)v4F~a##7y_b2S% zZQpIl(pKO%Ssb`i&W-i<>*RZRX@Q4d&D!|l^h-lG9p~8h*BegrHZ16UaQevR4#kam zRa;Lmels&xd$Q>0rlo6q`R~i7UI|{ev|RgU-?>XUCiUBtcPmF3@Ym~nu4tcgS7YP$ z%{AF7)1@04&Mw-Uf9m8RN4{@Q8>W5dZh761oe(d#=51>1ZSzINQQPMH-m(7t?yp-n z*Rj0MFnn_G^PlqVj5AtIwclAU(_H*P>%g9`vm|5p?+|=F=TXp^pAnDWd_VJl^XKyH z_iL{!ysikVEZok>!JK??gI9jF%*+)}7TnDX<1I4u-X;^iuDOWw+!>LCbLX$9e$!=I zle|4;SN$>$hap93 z14k#zdUXzic>fbZwJs0*8b8<{zx;>)lZ`#Y-It5SXERz+Wz% zd;8J%v8OAaWft$-_{CJZL3;9S<7fAdE?chqO5p<=W8Ri;kw>oFD@k{Gr(OM}@c!dE zuhlsWekZRysw-lS^}gBkFQRX*&6ezIXSO^~f3msO z5>zu89=~LCs7{VqU`Kfq7=}YsHpA9-Py3>M|?=;k^;fSz| zI{Nd)9aj0MXMb2_cs?dI&NE%I{M^wa!ENtqd3UEVFZe6Yz3fa=ck?EWUiEmM>~7Du ze=7XnbuIXLdV*B3@0{H!Ul(8facxoLkri7%Zu`9H*_30U##29UwOIN?<~(;t_P;mZ z1AS*M|21c~`-54$4NIoX-so{9-gLH_*z8@4T{(A7WXnIJ>r!fHa=k%MXlWIz*XP*2 z)7g6eF7J$~?Ayw{870#H zrln@bA5Mp!i0c1S8lqy)DTCUBb5sTL))X;Mo40)a(;a)Ro%6Pg6Ler`ymr6IBJ|8# zwg&d!!OO3#uWO(EPFMWW`oQy*?T=-y2ZikMHu~J3Y=3{pHK!AeN0)WRTw7vUzpLSB z>88^M?y@=5)%!M|QcJwPIcp`K6hF9nPp3{^_tXAt9zgKPLczAehJg9ul8%7zubJAw?S;>(_^QWIj#1xWD!`w zxnbUw7K?sRqxnJTgCD#N;Ss-D8JIXa8lKBDd&}GIJ@=z5*UiU2?F%a-OATj5d~r-3 zL)5;j`M%%J+*n&%>0No&e4!0PZ|dwy>u2t{ECM%_58T>+d~VoZj*7i(F?kGsmh{e3 zXgIKzX;yx|NowBL&t`dN#YOM^+OyhT_w%olTUF1k+jvQj$(Yq9p80q_LrVJBEgWZk z-ksfOxZm=3k1VLIabPxsz3#VZg8Tnk)-elY%=}QTJ|nH&yYJhxj%&|3GRzO2`EU8p z<*xpM$p7EJPm%*SW2%@J?A^Jn`H?ZGH*i3fN%uRaSyK5KPPfhm@y2OiGfU^k<}+kT z)O-#Qer3OY?v^JD?$4OTpey?Z4f388U)TIZq5*wRg@lri^|sUKRm| z2ayZ5eQWuwn_aJauQ>mmP4~^YmFZXRGcC8jll`gU51Rv(5tj`}XBqM%bNu|0>p{XQoP?-hA`jzKvmT&mE|IyZbH!%c)!a35N~|>FaI%^nB^@ z{Qj-ibiBS<9=URFN=F^b52N&YJtw{`*)=P-uL)M2x$p7E&3>9q%Y0Vq9pBGt^7?%A zvu&?=9dezrghIOyR2=q3vtZvMH5muzHsk($hflp%Qw@*RV^#` zzCJ5>li|*szo%|wcl*BG)AHQWOC=|6{++{?dvfP=Hh~g!!+~hlxUGyAYNY>Ob1~9m z5%{2eV42T!>B6d8Pue{8O2>Ate|>iD(x$+(|NSK0dL4E-n)qvcEs%gTjR{x;nx;QrwJsxFfgt? zkZs2BX2Mp@>(d`!_xutDu50fp9k}&>nvYSRTx0aJ{kM4?vYFEAimwCqYq7MC z#A9m~o$JEuCWEp};{m_MTmBmkStakxdn==zyI!zhH)DixO%$jUtK*9J=d!Wv@xPl^ z?gBTo56rpy`u^=*Pj_9t&Hk#EtK!~_op%^)-X>+=UpDpJ^uGFKUH(yxH;n7%ua38# zzxuEt%N}ln_0LmR9N)J5+#bO>vNum%(mHo@mf7CpmyT@|d;0R{=CJQuKI@q?Z0gqa z{SnmUb==>(tNmY=?%LCp62Dj0YQ*Xk<+KYC5{sVce6?fY0ye^8GtzjR*imzTW2 z2BCzyXwPepPkc^axn#}rPf=RshYF`lHweuUv(cSir+4&u#e9c|IZcIsmg@^`tzu2- zD_;CU^v{~>k2Jo`7u;uma_6*)ofb0E;uB(e+^fo4rtR!{d28o{s`m3AH%_~=_U%v0 zwV6DosfRk8^R}dxbNt=5IM8?YChqQf@xX4$>r=ZA7YmulS)b}i&WQdbU~~9)jNYS9 zne`w2U4PjfKUV1HWYY87$9wCMs5whxb}jR;w4A?h()5re|18aV{}#XQbJ4!a`TX)6 zPuaN7Oi7ZrkE?MVZ+> zf4TQHufvQpO*$F3IOVQizBbXU;;%@D?qlN}$E050d;ZB$@7a&%Yn;9P?*%C=wFfcGMc)I$ztaD0e0sz6JsTKeL literal 0 HcmV?d00001 diff --git a/Assets/Textures/red.png.import b/Assets/Textures/red.png.import new file mode 100644 index 0000000..335c310 --- /dev/null +++ b/Assets/Textures/red.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cjqxkraykhxxk" +path.s3tc="res://.godot/imported/red.png-906118aab604286bad2aef98ee509875.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/red.png" +dest_files=["res://.godot/imported/red.png-906118aab604286bad2aef98ee509875.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/rocket_launcher.png b/Assets/Textures/rocket_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fad5e8c648371628f0bdbaba7b01444ab1e88159 GIT binary patch literal 2691 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/rocket_launcher.png.import b/Assets/Textures/rocket_launcher.png.import new file mode 100644 index 0000000..64dfcd2 --- /dev/null +++ b/Assets/Textures/rocket_launcher.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://by1y15lm0bppe" +path="res://.godot/imported/rocket_launcher.png-b3967e10fe92066919e91518c35aac06.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/rocket_launcher.png" +dest_files=["res://.godot/imported/rocket_launcher.png-b3967e10fe92066919e91518c35aac06.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/scopetest.png b/Assets/Textures/scopetest.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0e47548e6b9be80b6d13532f8b410dd694bbf6 GIT binary patch literal 2007 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/spike.png b/Assets/Textures/spike.png new file mode 100644 index 0000000000000000000000000000000000000000..f27c3f69a64963627622cd5a453d6f7a65f1c235 GIT binary patch literal 1026 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE>C12U7785lGsmQFnF z%@indtUfAmieg}Z%LMLjF|I@b-P2-uDo1!W-FoqZtA@we%j5O}U+#sjSC(C0^nbxN z$Jw{imKBEvEP7Y){LhbffBDk)F;*L_etPCx z_L8?_OP;mze5;e=zu5TiH$wJ)UKRKM{_o1*C~$cXn~@1k`T?iCKF zj|d%dKP2bOCbBQAYR@_SuFIwW0&-jqeNG6sjeRNBw|&Dj!=gjNhu+0(TVnbwF#eIp zv*}_>`A*9nRPkZ3*LyT2Lfu<%{gpi_-?ry(dKSGvLC*J{RVq*6l9L_Rm9so|sV!aR z;(u!L(ltf@=PsW)>(kZU)_*R1%!z!Td|@Z|)vnZ9`RK5(EVt%8FuMOmTxI!8|BKqb zXKOjm>00d1%KB)#<3`&;ciXfhSwXXNsJQw>JH%#q%$WO0z$8=Oz4S zIQDd3@mqHPcNuza&o1s|U|`@Z@Q5sCV9-+rVaAH3_GJtVOje#Qjv*C{Z)bb^F+1|O zu)jOhrs@>aYg}O360zx_0i(WB>6)K6-fHcRo;gv#xbt@G*Hd#@xlR|wsW%oe$?N-z z|6D2XDPrSGk7~P+?u#e)*Z*IZC6&iyB2ebAa?944wwog-8=PUW*}w1ZhnvmC!4fqR zYz;py2sGXEIenTTLTKBS88PofrZV2Rv}Ab$??RS_>r=MZalgCu`Xz%-+82>EobG$4 z@g2~Lao*6d`CH!WAjX`T7t*2|-~PS!YumBv`D_c^_lWjfFNvPdwBY!k&?RjGFH7Iv z{I`tRfjjT0^1GJ|0!lN39as}Q<7aPX+WckPmqm;YoLgpeTnS)End$z9nf-y_RqKBf zk9>`?VAy-`#rXh+d0zq(7F8c&aA{r8Q1SZ!LxuUYU-Q@dUpC5~yK<&h6XS_r%F8b8 zclqARc;S%Iyv5I4A8%n0c($D3fX)A427!scoR;d>E_7$m^f|J2Y5zTDE(e$MWxlKo zbN98dvL6sQIY-NaVM;{pzsQ7k)&{1^EA31Qv%4h zhOor9KccTIyb5Bd5c+z>kC{Pn%2nl5CYL{Pn?fJ!@4CcrB277NCBwI64i9AZo@bcB z)sU!g%UIT7_NSk$o&SGm*)yb8o%)yRRzH8i+@2Q^)z_BGGxqQ3xn;x<+L^r~m0`<- m-L==|vzBu|GKq6}z;E$!=8<$S4jBdp1_n=8KbLh*2~7aKa@TYK literal 0 HcmV?d00001 diff --git a/Assets/Textures/spike.png.import b/Assets/Textures/spike.png.import new file mode 100644 index 0000000..f2790dd --- /dev/null +++ b/Assets/Textures/spike.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://duywsy7jmh4u" +path="res://.godot/imported/spike.png-c96630296dde04541d0a1d2bf09362bf.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/spike.png" +dest_files=["res://.godot/imported/spike.png-c96630296dde04541d0a1d2bf09362bf.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/stone wall 7.png b/Assets/Textures/stone wall 7.png new file mode 100644 index 0000000000000000000000000000000000000000..62d76d74b89eff94234476440edb9c9037648628 GIT binary patch literal 324862 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 z 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/stone wall 7.png.import b/Assets/Textures/stone wall 7.png.import new file mode 100644 index 0000000..8b1817c --- /dev/null +++ b/Assets/Textures/stone wall 7.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://r8cr41blojpm" +path.s3tc="res://.godot/imported/stone wall 7.png-469dc03eddd8a7dadec795871754c70e.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/stone wall 7.png" +dest_files=["res://.godot/imported/stone wall 7.png-469dc03eddd8a7dadec795871754c70e.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/target_icon.png b/Assets/Textures/target_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c018feb69016327e42da1e05a382a29986d50fff GIT binary patch literal 1389 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE2l^?q|g`DuIK8tHsPvjrEip?=V9+Ik??~@7d}wf^~3as z{0preS{zME9XodZ-s;i$-LzFK^Zw(f|12t>7Zo%8xNK$oW?tn11KD}Ls!Ol_nI%%= z&as%|vfSjExw;CHdaRLa|LglP-<0C(O8inY$c zD@VW?!4O$ zJl^ep|Lf;pWWy zH;6t{Qg=RDC*~d|Z#a49s@awk`Hz%}HwZ3Fy6w)g?LGhM&!3f(m&@*)$$x~A*@v=&yT!0(fzXMTZGF!!{4D8zIh)TqxYmPFB2raE`qte&#jAg{&99ii zZ1CvZ5tkc3miaHwuLG=&_Hnq%YO}2BFWh>5^ZFUi@*G5aCzra7*e?L*_xlrm9{2C3>fyD`6>P*y4LPrt>ziPX6xC*|1l3 z+kD^mG4q8QOef4f`+BZ#Sj_Ujk}irNZt|sNw|FZ;oP+O8=XLly`PT-21u2Wyzx%c~ zR#u$g?KnHTb5Gwfwc^Jg?|a6!PGt_59Z)z`vt(N3XQ`_i)kO?klEz2Z%|8^GI79BX zdyGlL%1kw@r;cj5{T~ftk4^rb$sn1Lt#<6&%*-Qe-x%&&A^-f`$yaY`L>h#T33A@5 zRF!(Yy!hDZnvy@^`+hkdNn?6zEo}Vqx%DwG`%mR@)0jG#D(`Wo{h3%Q-t=hcUltLe z{G_I@vy>n6?bUAo7LxhiVA0MUu5Ul6um*6>T>74G!RN<@n)_}sglz0wk-YrzmF|z_ ziWeBdj_hi)GF}n)_2C_k_vsz~^%z_PxO>+ecKK6&rnvb`{IQwaXEQ`BG@r<6wdcBR z)|tAP<)5Zz?_-)FvNJ$VyRXM~(>Y&-b*H@7{1y#N3J literal 0 HcmV?d00001 diff --git a/Assets/Textures/target_icon.png.import b/Assets/Textures/target_icon.png.import new file mode 100644 index 0000000..04885c0 --- /dev/null +++ b/Assets/Textures/target_icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hnfa76d6tdi" +path="res://.godot/imported/target_icon.png-52b48b3583774442e6ace899a7e119fd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/target_icon.png" +dest_files=["res://.godot/imported/target_icon.png-52b48b3583774442e6ace899a7e119fd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/target_list.png b/Assets/Textures/target_list.png new file mode 100644 index 0000000000000000000000000000000000000000..f10c87511ce7c754d4320007e4af7e98dde5c128 GIT binary patch literal 3312 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/target_list.png.import b/Assets/Textures/target_list.png.import new file mode 100644 index 0000000..31b5e01 --- /dev/null +++ b/Assets/Textures/target_list.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cc2umukpibmx1" +path="res://.godot/imported/target_list.png-22999316bc250bbe67cd788be5f870a7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/target_list.png" +dest_files=["res://.godot/imported/target_list.png-22999316bc250bbe67cd788be5f870a7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Textures/tree.png b/Assets/Textures/tree.png new file mode 100644 index 0000000000000000000000000000000000000000..bd26c410f02b3264a14c8e6857f1011ea0715f22 GIT binary patch literal 2900 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/tree.png.import b/Assets/Textures/tree.png.import new file mode 100644 index 0000000..5a3a01a --- /dev/null +++ b/Assets/Textures/tree.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dy2ukmg6koun1" +path="res://.godot/imported/tree.png-ae585c51ec7ebe34c0b176bbf7b19dc1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/tree.png" +dest_files=["res://.godot/imported/tree.png-ae585c51ec7ebe34c0b176bbf7b19dc1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Assets/Textures/wavecounter.png b/Assets/Textures/wavecounter.png new file mode 100644 index 0000000000000000000000000000000000000000..a05f69dbbccd7be64aedd531fefdfe96e44ab90f GIT binary patch literal 1557 zcmeAS@N?(olHy`uVBq!ia0y~yU^HQ1V2I;jV_;xdJM)D&0|R4Trn7TEW^ytEgT}-s74^geEWl+$@%)VlMB%8w9#-RPq)wXPNW#Z@?1%rNh+s+9Yx z%6NFz+=;hzce78o2vo{gqPeNZvvER*x6$wW=6_z#PI9%`wI}yl!I6oo>h}}_yDwdx zFiY_6gySi`PydM)KCf^i) zmAP`uIoxKO6C1YWi{6}kr|Zpgi-PtC?ahf-V_v`f!mO4)=@0r-HfhZ-F5>Sj{posr z!*>3^Mf-C(@;4JWnEM{QPQwCwiilz2t3=Ay3o-U3d6^w6hGv?ij zU|_khlU;j?CGcvKXiT^OI zVPfPEQ1}pjV1XqU3&#dv(aDf*}?T^Y35WU-j7Aufbtb!~F}B zZcS-**xBHyZO`yX*h6T>y`oaE{!U+iV{-iZ3F^%D z4{zu5%?Z4{{@;TcJLA7y-uFdY1}N}H`A`{Prl%m`|e+<^tRu6=I5n0OHb-h=ZSLZ4Oi^BC3^g=x_0ujx*boY zUP-d@g-QFlx9z^B{C9`8 z+1`h*Ys~ZQga0cZJT$>q>fE2NGdq6y>>TXR?_*K5kNz>^{{Ls&x4blRulv2zC?(kBc}50k6+3*Z*AlkwwlK^GkWMbhEP$0x;7yH3n{60Ky_5VG> Q3=9kmp00i_>zopr0KB@*O8@`> literal 0 HcmV?d00001 diff --git a/Assets/Textures/wavecounter.png.import b/Assets/Textures/wavecounter.png.import new file mode 100644 index 0000000..236c1d0 --- /dev/null +++ b/Assets/Textures/wavecounter.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b6iego7256jf2" +path="res://.godot/imported/wavecounter.png-a95bcf6589e41e41d68df7cdaa017619.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/wavecounter.png" +dest_files=["res://.godot/imported/wavecounter.png-a95bcf6589e41e41d68df7cdaa017619.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/PCs/Blue/blue.tres b/PCs/Blue/blue.tres new file mode 100644 index 0000000..b140022 --- /dev/null +++ b/PCs/Blue/blue.tres @@ -0,0 +1,11 @@ +[gd_resource type="Resource" script_class="HeroClass" load_steps=5 format=3 uid="uid://dxonpv8qbyrjy"] + +[ext_resource type="Script" path="res://Scripts/Resources/hero_class.gd" id="1_aeu85"] +[ext_resource type="Resource" uid="uid://dh5fjnbp8auw1" path="res://PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres" id="1_uvyoy"] +[ext_resource type="Resource" uid="uid://bmoreipvttks8" path="res://PCs/Universal/ClassCards/Assault/card_assault.tres" id="2_3yr5a"] +[ext_resource type="Resource" uid="uid://cvf5bxtu6er17" path="res://PCs/Universal/ClassCards/Sniper/card_sniper.tres" id="3_wyb0n"] + +[resource] +script = ExtResource("1_aeu85") +hero_name = "Blue" +deck = Array[Resource("res://Scripts/Resources/card.gd")]([ExtResource("1_uvyoy"), ExtResource("2_3yr5a"), ExtResource("3_wyb0n")]) diff --git a/PCs/Green/green.tres b/PCs/Green/green.tres new file mode 100644 index 0000000..a84271e --- /dev/null +++ b/PCs/Green/green.tres @@ -0,0 +1,13 @@ +[gd_resource type="Resource" script_class="HeroClass" load_steps=6 format=3 uid="uid://ogbkbf1v7j7l"] + +[ext_resource type="Script" path="res://Scripts/Resources/hero_class.gd" id="1_cpfpk"] +[ext_resource type="Resource" uid="uid://cvf5bxtu6er17" path="res://PCs/Universal/ClassCards/Sniper/card_sniper.tres" id="1_hv6hq"] +[ext_resource type="Texture2D" uid="uid://bgt3j4cuq814m" path="res://Assets/TextureAtlases/green.tres" id="2_4p73e"] +[ext_resource type="Resource" uid="uid://dh5fjnbp8auw1" path="res://PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres" id="2_jdi4m"] +[ext_resource type="Resource" uid="uid://bmoreipvttks8" path="res://PCs/Universal/ClassCards/Assault/card_assault.tres" id="3_f04lj"] + +[resource] +script = ExtResource("1_cpfpk") +hero_name = "Green" +texture = ExtResource("2_4p73e") +deck = Array[Resource("res://Scripts/Resources/card.gd")]([ExtResource("1_hv6hq"), ExtResource("2_jdi4m"), ExtResource("3_f04lj")]) diff --git a/PCs/Red/red.tres b/PCs/Red/red.tres new file mode 100644 index 0000000..88e2518 --- /dev/null +++ b/PCs/Red/red.tres @@ -0,0 +1,13 @@ +[gd_resource type="Resource" script_class="HeroClass" load_steps=6 format=3 uid="uid://b5pc3frhx467q"] + +[ext_resource type="Script" path="res://Scripts/Resources/hero_class.gd" id="1_1wkap"] +[ext_resource type="Resource" uid="uid://bmoreipvttks8" path="res://PCs/Universal/ClassCards/Assault/card_assault.tres" id="1_iiksa"] +[ext_resource type="Resource" uid="uid://cvf5bxtu6er17" path="res://PCs/Universal/ClassCards/Sniper/card_sniper.tres" id="2_hkiwr"] +[ext_resource type="Texture2D" uid="uid://hxev3a2ktya" path="res://Assets/TextureAtlases/red.tres" id="2_kjc7g"] +[ext_resource type="Resource" uid="uid://dh5fjnbp8auw1" path="res://PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres" id="3_ruhqi"] + +[resource] +script = ExtResource("1_1wkap") +hero_name = "Red" +texture = ExtResource("2_kjc7g") +deck = Array[Resource("res://Scripts/Resources/card.gd")]([ExtResource("1_iiksa"), ExtResource("2_hkiwr"), ExtResource("3_ruhqi")]) diff --git a/PCs/Universal/ClassCards/Assault/card_assault.tres b/PCs/Universal/ClassCards/Assault/card_assault.tres new file mode 100644 index 0000000..4cf7e84 --- /dev/null +++ b/PCs/Universal/ClassCards/Assault/card_assault.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Card" load_steps=7 format=3 uid="uid://bmoreipvttks8"] + +[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_yqa4b"] +[ext_resource type="Texture2D" uid="uid://ca4lwwd3e0y73" path="res://Assets/TextureAtlases/g_assault.tres" id="2_8j5h0"] +[ext_resource type="PackedScene" uid="uid://fernyl7fsifv" path="res://PCs/Universal/ClassCards/Assault/tower_assault.tscn" id="3_0r6s7"] +[ext_resource type="Resource" uid="uid://w15ojqyxd72q" path="res://Resources/WeaponStats/assault.tres" id="3_k2yr3"] +[ext_resource type="Resource" uid="uid://cktq4o3yuxgsa" path="res://Resources/TurretStats/assault.tres" id="3_p4byc"] +[ext_resource type="PackedScene" uid="uid://d1xe6hsq05110" path="res://PCs/Universal/ClassCards/Assault/weapon_assault.tscn" id="3_wj5gm"] + +[resource] +script = ExtResource("1_yqa4b") +title = "Assault" +rarity = 0 +faction = 0 +sprite = ExtResource("2_8j5h0") +turret = ExtResource("3_0r6s7") +weapon = ExtResource("3_wj5gm") +weapon_stats = ExtResource("3_k2yr3") +tower_stats = ExtResource("3_p4byc") diff --git a/PCs/Universal/ClassCards/Assault/tower.gd b/PCs/Universal/ClassCards/Assault/tower.gd new file mode 100644 index 0000000..a9f5cf3 --- /dev/null +++ b/PCs/Universal/ClassCards/Assault/tower.gd @@ -0,0 +1,45 @@ +extends Node3D +class_name Tower + +@export var stats : TowerStats +@export var model : Node3D + +var targeted_enemy +var cooldown := 0.0 +var other_cooldown := 0.0 + +func _ready() -> void: + cooldown = 1.0 / stats.fire_rate + + +func _process(delta: float) -> void: + other_cooldown -= delta + if !targeted_enemy: + acquire_target() + else: + if model.global_position.distance_to(targeted_enemy.global_position) > stats.fire_range: + targeted_enemy = null + if targeted_enemy: + aim() + if other_cooldown <= 0: + shoot() + other_cooldown = cooldown + + +func shoot(): + targeted_enemy.damage(stats.damage) + + +func aim(): + model.look_at(targeted_enemy.global_position) + + +func acquire_target(): + var most_progressed_enemy = null + for enemy in get_tree().get_nodes_in_group("Enemies"): + if model.global_position.distance_to(enemy.global_position) > stats.fire_range: + continue + if (most_progressed_enemy == null or enemy.progress >= most_progressed_enemy.progress) and enemy.stats.target_type & stats.can_target: + most_progressed_enemy = enemy + if most_progressed_enemy != null: + targeted_enemy = most_progressed_enemy diff --git a/PCs/Universal/ClassCards/Assault/tower_assault.tscn b/PCs/Universal/ClassCards/Assault/tower_assault.tscn new file mode 100644 index 0000000..ddb6a9b --- /dev/null +++ b/PCs/Universal/ClassCards/Assault/tower_assault.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=3 uid="uid://fernyl7fsifv"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Assault/tower.gd" id="1_c2874"] +[ext_resource type="Resource" uid="uid://cktq4o3yuxgsa" path="res://Resources/TurretStats/assault.tres" id="2_t516u"] + +[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model")] +script = ExtResource("1_c2874") +stats = ExtResource("2_t516u") +model = NodePath("Model") + +[node name="Model" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="Model"] + +[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.714825, 0, -0.423869) +size = Vector3(0.481654, 0.427749, 1.38438) + +[node name="CSGBox3D3" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.715, 0, -0.424) +size = Vector3(0.481654, 0.427749, 1.38438) diff --git a/PCs/Universal/ClassCards/Assault/weapon.gd b/PCs/Universal/ClassCards/Assault/weapon.gd new file mode 100644 index 0000000..1d97054 --- /dev/null +++ b/PCs/Universal/ClassCards/Assault/weapon.gd @@ -0,0 +1,66 @@ +extends Sprite3D +class_name Weapon + +@export var stats : WeaponStats +@export var hero : Hero + +var cooldown := 0.0 +var other_cooldown := 0.0 +var trigger_held := false +var second_trigger_held := false + + +func _ready() -> void: + cooldown = 1.0 / stats.fire_rate + $RayCast3D.target_position = Vector3(0, 0, -stats.fire_range) + + +func set_raycast_origin(node): + $RayCast3D.global_position = node.global_position + + +func set_hero(value): + hero = value + + +func _process(delta: float) -> void: + if stats != null: + other_cooldown -= delta + + +func _physics_process(_delta: float) -> void: + if trigger_held: + shoot() + + +func hold_trigger(): + trigger_held = true + + +func release_trigger(): + trigger_held = false + + +func hold_second_trigger(): + second_trigger_held = true + + +func release_second_trigger(): + second_trigger_held = false + + +func shoot(): + if other_cooldown <= 0 and stats != null: + other_cooldown = cooldown + $AnimationPlayer.play("shoot") + if $RayCast3D.is_colliding(): + var target = $RayCast3D.get_collider() + if target != null: + var target_hitbox = target.shape_owner_get_owner($RayCast3D.get_collider_shape()) + if target_hitbox is Hitbox: + target_hitbox.damage(stats.damage) + +@rpc +func networked_shoot(): + $AnimationPlayer.play("shoot") + diff --git a/PCs/Universal/ClassCards/Assault/weapon_assault.tscn b/PCs/Universal/ClassCards/Assault/weapon_assault.tscn new file mode 100644 index 0000000..239e093 --- /dev/null +++ b/PCs/Universal/ClassCards/Assault/weapon_assault.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=7 format=3 uid="uid://d1xe6hsq05110"] + +[ext_resource type="Texture2D" uid="uid://ca4lwwd3e0y73" path="res://Assets/TextureAtlases/g_assault.tres" id="1_117ne"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Assault/weapon.gd" id="2_4ie8w"] +[ext_resource type="Resource" uid="uid://w15ojqyxd72q" path="res://Resources/WeaponStats/assault.tres" id="3_s4ckt"] + +[sub_resource type="Animation" id="Animation_n8b32"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Rect2(0, 0, 64, 64)] +} + +[sub_resource type="Animation" id="Animation_g0h8q"] +resource_name = "shoot" +length = 0.15 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(0, 0), +"update": 0, +"values": [Rect2(64, 0, 64, 64), Rect2(0, 0, 64, 64)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ntl6p"] +_data = { +"RESET": SubResource("Animation_n8b32"), +"shoot": SubResource("Animation_g0h8q") +} + +[node name="Weapon" type="Sprite3D"] +layers = 2 +billboard = 1 +texture_filter = 0 +texture = ExtResource("1_117ne") +script = ExtResource("2_4ie8w") +stats = ExtResource("3_s4ckt") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_ntl6p") +} + +[node name="RayCast3D" type="RayCast3D" parent="."] +collision_mask = 4 diff --git a/PCs/Universal/ClassCards/BombLauncher/bomb.gd b/PCs/Universal/ClassCards/BombLauncher/bomb.gd new file mode 100644 index 0000000..a16e826 --- /dev/null +++ b/PCs/Universal/ClassCards/BombLauncher/bomb.gd @@ -0,0 +1,20 @@ +extends RigidBody3D +class_name Bomb + +@export var max_bounces := 1 +@export var damage := 10.0 +@export var explosion_range := 3.0 +var bounces := 0 + +func _on_body_entered(_body: Node) -> void: + bounces += 1 + var collided_body = get_colliding_bodies()[0].get_collision_layer_value(3) + if bounces > max_bounces or collided_body: + explode() + + +func explode(): + for enemy in get_tree().get_nodes_in_group("Enemies"): + if global_position.distance_to(enemy.global_position) <= explosion_range: + enemy.damage(damage) + queue_free() diff --git a/PCs/Universal/ClassCards/BombLauncher/bomb.tscn b/PCs/Universal/ClassCards/BombLauncher/bomb.tscn new file mode 100644 index 0000000..300e91a --- /dev/null +++ b/PCs/Universal/ClassCards/BombLauncher/bomb.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=5 format=3 uid="uid://d147iwg2wcqc5"] + +[ext_resource type="Texture2D" uid="uid://b54d5dc4jmlau" path="res://Assets/Textures/bomb.png" id="1_u615o"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/bomb.gd" id="1_vekqm"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_whkhx"] +bounce = 0.6 + +[sub_resource type="SphereShape3D" id="SphereShape3D_mi0in"] +radius = 0.2 + +[node name="RigidBody3D" type="RigidBody3D"] +collision_layer = 0 +collision_mask = 5 +physics_material_override = SubResource("PhysicsMaterial_whkhx") +max_contacts_reported = 1 +contact_monitor = true +script = ExtResource("1_vekqm") + +[node name="Node3D" type="Sprite3D" parent="."] +transform = Transform3D(1.4, 0, 0, 0, 1.4, 0, 0, 0, 1.4, 0, 0, 0) +billboard = 1 +texture_filter = 0 +texture = ExtResource("1_u615o") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("SphereShape3D_mi0in") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/PCs/Universal/ClassCards/BombLauncher/bombtower.gd b/PCs/Universal/ClassCards/BombLauncher/bombtower.gd new file mode 100644 index 0000000..e88a867 --- /dev/null +++ b/PCs/Universal/ClassCards/BombLauncher/bombtower.gd @@ -0,0 +1,30 @@ +extends Tower +class_name BombTower + +@export var bomb_scene: PackedScene +var firing_velocity + +func _ready() -> void: + super._ready() + firing_velocity = sqrt((stats.fire_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2 * 45)) + + +func shoot(): + var bomb = bomb_scene.instantiate() as Bomb + bomb.position = model.global_position + bomb.damage = stats.damage + get_tree().root.add_child(bomb) + bomb.apply_impulse(-model.global_transform.basis.z * firing_velocity) + + +func aim(): + var pos = Vector2(global_position.x, global_position.z) + var t_pos = Vector2(targeted_enemy.global_position.x, targeted_enemy.global_position.z) + var x = pos.distance_to(t_pos) + var y = targeted_enemy.global_position.y - global_position.y + var v = firing_velocity + var g = ProjectSettings.get_setting("physics/3d/default_gravity") + var v2 = pow(v, 2) + var angle = atan((v2 + sqrt(pow(v, 4) - g * ((g * pow(x, 2)) + (2 * y * v2)))) / (g * x)) + model.look_at(Vector3(t_pos.x, model.global_position.y, t_pos.y)) + model.rotate(model.global_transform.basis.x.normalized(), angle) diff --git a/PCs/Universal/ClassCards/BombLauncher/bombweapon.gd b/PCs/Universal/ClassCards/BombLauncher/bombweapon.gd new file mode 100644 index 0000000..16a4c14 --- /dev/null +++ b/PCs/Universal/ClassCards/BombLauncher/bombweapon.gd @@ -0,0 +1,21 @@ +extends Weapon +class_name BombWeapon + +@export var bomb_scene: PackedScene +var firing_velocity + +func _ready() -> void: + cooldown = 1.0 / stats.fire_rate + firing_velocity = sqrt((stats.fire_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2 * 45)) + $RayCast3D.target_position = Vector3(0, 0, -stats.fire_range) + + +func shoot(): + if other_cooldown <= 0 and stats != null: + other_cooldown = cooldown + $AnimationPlayer.play("shoot") + var bomb = bomb_scene.instantiate() as Bomb + bomb.position = $RayCast3D.global_position + bomb.damage = stats.damage + get_tree().root.add_child(bomb) + bomb.apply_impulse(-global_transform.basis.z * firing_velocity) diff --git a/PCs/Universal/ClassCards/BombLauncher/card_grenade_launcher.tres b/PCs/Universal/ClassCards/BombLauncher/card_grenade_launcher.tres new file mode 100644 index 0000000..39f742e --- /dev/null +++ b/PCs/Universal/ClassCards/BombLauncher/card_grenade_launcher.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Card" load_steps=7 format=3 uid="uid://bvpkvmda845o5"] + +[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_bscy2"] +[ext_resource type="Texture2D" uid="uid://bwufgga1pjyt" path="res://Assets/TextureAtlases/g_grenade_launcher.tres" id="2_xtrq2"] +[ext_resource type="Resource" uid="uid://crmsk6lvp5i4e" path="res://Resources/TurretStats/bomblauncher.tres" id="3_c1c3t"] +[ext_resource type="PackedScene" uid="uid://6ckryuql3bh8" path="res://PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.tscn" id="4_iaadg"] +[ext_resource type="PackedScene" uid="uid://cwc8y1nv53btu" path="res://PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.tscn" id="4_ux0v3"] +[ext_resource type="Resource" uid="uid://kbaiy5u6imtu" path="res://Resources/WeaponStats/bomblauncher.tres" id="5_mhhrq"] + +[resource] +script = ExtResource("1_bscy2") +title = "Grenade Launcher" +rarity = 1 +faction = 0 +sprite = ExtResource("2_xtrq2") +turret = ExtResource("4_ux0v3") +weapon = ExtResource("4_iaadg") +weapon_stats = ExtResource("5_mhhrq") +tower_stats = ExtResource("3_c1c3t") diff --git a/PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.tscn b/PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.tscn new file mode 100644 index 0000000..bf5fdb7 --- /dev/null +++ b/PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=4 format=3 uid="uid://cwc8y1nv53btu"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/bombtower.gd" id="1_u2hyk"] +[ext_resource type="PackedScene" uid="uid://d147iwg2wcqc5" path="res://PCs/Universal/ClassCards/BombLauncher/bomb.tscn" id="2_n307r"] +[ext_resource type="Resource" uid="uid://crmsk6lvp5i4e" path="res://Resources/TurretStats/bomblauncher.tres" id="3_xv5rx"] + +[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model")] +script = ExtResource("1_u2hyk") +bomb_scene = ExtResource("2_n307r") +stats = ExtResource("3_xv5rx") +model = NodePath("Model") + +[node name="Model" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.13842, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="Model"] + +[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.65) +size = Vector3(0.596453, 0.632841, 0.539216) diff --git a/PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.tscn b/PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.tscn new file mode 100644 index 0000000..c709062 --- /dev/null +++ b/PCs/Universal/ClassCards/BombLauncher/weapon_bomb_launcher.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=8 format=3 uid="uid://6ckryuql3bh8"] + +[ext_resource type="Texture2D" uid="uid://bwufgga1pjyt" path="res://Assets/TextureAtlases/g_grenade_launcher.tres" id="1_n7mif"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/BombLauncher/bombweapon.gd" id="2_4iyo6"] +[ext_resource type="PackedScene" uid="uid://d147iwg2wcqc5" path="res://PCs/Universal/ClassCards/BombLauncher/bomb.tscn" id="3_506dv"] +[ext_resource type="Resource" uid="uid://kbaiy5u6imtu" path="res://Resources/WeaponStats/bomblauncher.tres" id="4_45cu2"] + +[sub_resource type="Animation" id="Animation_n8b32"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Rect2(0, 0, 64, 64)] +} + +[sub_resource type="Animation" id="Animation_g0h8q"] +resource_name = "shoot" +length = 0.15 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(0, 0), +"update": 0, +"values": [Rect2(64, 0, 64, 64), Rect2(0, 0, 64, 64)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ntl6p"] +_data = { +"RESET": SubResource("Animation_n8b32"), +"shoot": SubResource("Animation_g0h8q") +} + +[node name="Weapon" type="Sprite3D"] +layers = 2 +billboard = 1 +texture_filter = 0 +texture = ExtResource("1_n7mif") +script = ExtResource("2_4iyo6") +bomb_scene = ExtResource("3_506dv") +stats = ExtResource("4_45cu2") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_ntl6p") +} + +[node name="RayCast3D" type="RayCast3D" parent="."] diff --git a/PCs/Universal/ClassCards/Flamethrower/card_flamethrower.tres b/PCs/Universal/ClassCards/Flamethrower/card_flamethrower.tres new file mode 100644 index 0000000..9d4fd3d --- /dev/null +++ b/PCs/Universal/ClassCards/Flamethrower/card_flamethrower.tres @@ -0,0 +1,15 @@ +[gd_resource type="Resource" script_class="Card" load_steps=5 format=3 uid="uid://1xke2uy2vfuf"] + +[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_xmwih"] +[ext_resource type="Resource" uid="uid://5ywipj3632u8" path="res://Resources/TurretStats/flametower.tres" id="2_80w0f"] +[ext_resource type="PackedScene" uid="uid://dvqk2lysu02gf" path="res://PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.tscn" id="3_yfmjg"] +[ext_resource type="Resource" uid="uid://c4ihsd13o1esd" path="res://Resources/WeaponStats/flamethrower.tres" id="4_rdoaa"] + +[resource] +script = ExtResource("1_xmwih") +title = "Flamethrower" +rarity = 3 +faction = 0 +turret = ExtResource("3_yfmjg") +weapon_stats = ExtResource("4_rdoaa") +tower_stats = ExtResource("2_80w0f") diff --git a/PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.gd b/PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.gd new file mode 100644 index 0000000..a8a9825 --- /dev/null +++ b/PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.gd @@ -0,0 +1,30 @@ +extends Tower +class_name FlameyTower + +@export var shapecast : ShapeCast3D +@export var particlesystem : GPUParticles3D +@export var status_stats : StatusStats + + +func _process(delta: float) -> void: + super._process(delta) + if targeted_enemy: + particlesystem.emitting = true + else: + particlesystem.emitting = false + + +func shoot(): + for index in shapecast.get_collision_count(): + var target = shapecast.get_collider(index) as CharacterBody3D + #TODO: its shit the way the enemy and status have to know about each other + var status = StatusOnFire.new() + status.affected = target.get_parent() + status.stats = status_stats + target.get_parent().status_manager.add_effect(status) + target.get_parent().add_child(status) + + +func aim(): + model.look_at(targeted_enemy.global_position) + model.rotation.x = 0.0 diff --git a/PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.tscn b/PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.tscn new file mode 100644 index 0000000..ac5f4a7 --- /dev/null +++ b/PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=9 format=3 uid="uid://dvqk2lysu02gf"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Flamethrower/tower_flamethrower.gd" id="1_6dcsj"] +[ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="2_yo2b7"] + +[sub_resource type="Gradient" id="Gradient_kkqms"] +offsets = PackedFloat32Array(0.00591716, 1) +colors = PackedColorArray(0.898039, 0.447059, 0, 1, 1, 0, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_gpquw"] +gradient = SubResource("Gradient_kkqms") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_2nhns"] +direction = Vector3(0, 1, 0) +spread = 20.0 +gravity = Vector3(0, 0, 0) +initial_velocity_min = 5.0 +initial_velocity_max = 5.0 +damping_min = 4.464 +damping_max = 4.464 +color_ramp = SubResource("GradientTexture1D_gpquw") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2yd7w"] +vertex_color_use_as_albedo = true + +[sub_resource type="BoxMesh" id="BoxMesh_q83y7"] +material = SubResource("StandardMaterial3D_2yd7w") +size = Vector3(0.3, 0.3, 0.3) + +[sub_resource type="BoxShape3D" id="BoxShape3D_vck5q"] +size = Vector3(2.145, 3.125, 2.415) + +[node name="Node3D" type="Node3D" node_paths=PackedStringArray("shapecast", "particlesystem", "model")] +script = ExtResource("1_6dcsj") +shapecast = NodePath("Model/Node3D/ShapeCast3D") +particlesystem = NodePath("Model/Node3D/GPUParticles3D") +status_stats = ExtResource("2_yo2b7") +model = NodePath("Model") + +[node name="Model" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.569646, 0) +size = Vector3(1, 1.78698, 1) + +[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00567371, -0.274218, -0.514041) +size = Vector3(0.481654, 0.427749, 1.38438) + +[node name="Node3D" type="Node3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, -0.301084, -1.2154) + +[node name="GPUParticles3D" type="GPUParticles3D" parent="Model/Node3D"] +amount = 48 +visibility_aabb = AABB(-2.2922, -3.14731, -1.92995, 4.5844, 6.29461, 3.85991) +process_material = SubResource("ParticleProcessMaterial_2nhns") +draw_pass_1 = SubResource("BoxMesh_q83y7") + +[node name="ShapeCast3D" type="ShapeCast3D" parent="Model/Node3D"] +shape = SubResource("BoxShape3D_vck5q") +target_position = Vector3(0, 1.51, 0) +collision_mask = 4 diff --git a/PCs/Universal/ClassCards/Gatling/card_gatling.tres b/PCs/Universal/ClassCards/Gatling/card_gatling.tres new file mode 100644 index 0000000..6e3fcdc --- /dev/null +++ b/PCs/Universal/ClassCards/Gatling/card_gatling.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Card" load_steps=7 format=3 uid="uid://q23ludhji5p4"] + +[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_5html"] +[ext_resource type="Texture2D" uid="uid://d1am28tgvwaa0" path="res://Assets/TextureAtlases/g_accelerator.tres" id="2_a3hso"] +[ext_resource type="Resource" uid="uid://cc20tomywj0jm" path="res://Resources/TurretStats/accelerator.tres" id="3_yj53i"] +[ext_resource type="PackedScene" uid="uid://rcqf3vangjlp" path="res://PCs/Universal/ClassCards/Gatling/weapon_gatling.tscn" id="4_4xp1m"] +[ext_resource type="PackedScene" uid="uid://bwcdgglljbmot" path="res://PCs/Universal/ClassCards/Gatling/tower_gatling.tscn" id="4_maix8"] +[ext_resource type="Resource" uid="uid://ouwge5etb4me" path="res://Resources/WeaponStats/accelerator.tres" id="5_hguan"] + +[resource] +script = ExtResource("1_5html") +title = "Accelerator" +rarity = 0 +faction = 0 +sprite = ExtResource("2_a3hso") +turret = ExtResource("4_maix8") +weapon = ExtResource("4_4xp1m") +weapon_stats = ExtResource("5_hguan") +tower_stats = ExtResource("3_yj53i") diff --git a/PCs/Universal/ClassCards/Gatling/speedytower.gd b/PCs/Universal/ClassCards/Gatling/speedytower.gd new file mode 100644 index 0000000..cf9befc --- /dev/null +++ b/PCs/Universal/ClassCards/Gatling/speedytower.gd @@ -0,0 +1,32 @@ +extends Tower +class_name SpeedyTower + +var third_cooldown := 0.0 + +var time_since_firing_started := 0.0 +var time_to_reach_max_speed := 3.0 +var max_speed_multiplier := 2.0 +var destination_multiplier := 0.0 + +func _ready() -> void: + cooldown = 1.0 / stats.fire_rate + destination_multiplier = 1.0 / max_speed_multiplier + + +func _process(delta: float) -> void: + other_cooldown -= delta + if !targeted_enemy: + acquire_target() + else: + if model.global_position.distance_to(targeted_enemy.global_position) > stats.fire_range: + targeted_enemy = null + time_since_firing_started = 0.0 + third_cooldown = cooldown + if targeted_enemy: + time_since_firing_started += delta + var progress = clamp(time_since_firing_started / time_to_reach_max_speed, 0, 1.0) + third_cooldown = cooldown * (1.0 - (destination_multiplier * progress)) + aim() + if other_cooldown <= 0: + shoot() + other_cooldown = third_cooldown diff --git a/PCs/Universal/ClassCards/Gatling/speedyweapon.gd b/PCs/Universal/ClassCards/Gatling/speedyweapon.gd new file mode 100644 index 0000000..e12b15e --- /dev/null +++ b/PCs/Universal/ClassCards/Gatling/speedyweapon.gd @@ -0,0 +1,60 @@ +extends Weapon +class_name SpeedyWeapon + +var third_cooldown := 0.0 + +var time_since_firing_started := 0.0 +var time_to_reach_max_speed := 3.0 +var max_speed_multiplier := 2.0 +var destination_multiplier := 0.0 + + +func _ready() -> void: + cooldown = 1.0 / stats.fire_rate + destination_multiplier = 1.0 / max_speed_multiplier + $RayCast3D.target_position = Vector3(0, 0, -stats.fire_range) + + +func set_raycast_origin(node): + $RayCast3D.global_position = node.global_position + + +func _process(delta: float) -> void: + if stats != null: + other_cooldown -= delta + if trigger_held: + time_since_firing_started += delta + var progress = clamp(time_since_firing_started / time_to_reach_max_speed, 0, 1.0) + third_cooldown = cooldown * (1.0 - (destination_multiplier * progress)) + + +func _physics_process(_delta: float) -> void: + if trigger_held: + shoot() + + +func hold_trigger(): + trigger_held = true + + +func release_trigger(): + trigger_held = false + time_since_firing_started = 0.0 + third_cooldown = cooldown + + +func shoot(): + if other_cooldown <= 0 and stats != null: + other_cooldown = third_cooldown + $AnimationPlayer.play("shoot") + if $RayCast3D.is_colliding(): + var target = $RayCast3D.get_collider() + if target != null: + var target_hitbox = target.shape_owner_get_owner($RayCast3D.get_collider_shape()) + if target_hitbox is Hitbox: + target_hitbox.damage(stats.damage) + +@rpc +func networked_shoot(): + $AnimationPlayer.play("shoot") + diff --git a/PCs/Universal/ClassCards/Gatling/tower_gatling.tscn b/PCs/Universal/ClassCards/Gatling/tower_gatling.tscn new file mode 100644 index 0000000..8f7b0f9 --- /dev/null +++ b/PCs/Universal/ClassCards/Gatling/tower_gatling.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=3 format=3 uid="uid://bwcdgglljbmot"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Gatling/speedytower.gd" id="1_26he3"] +[ext_resource type="Resource" uid="uid://cc20tomywj0jm" path="res://Resources/TurretStats/accelerator.tres" id="2_puwlv"] + +[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model")] +script = ExtResource("1_26he3") +stats = ExtResource("2_puwlv") +model = NodePath("Model") + +[node name="Model" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="Model"] + +[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00131059, 0.27342, -0.880753) +size = Vector3(0.177, 0.148, 0.929) + +[node name="CSGBox3D3" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.226066, 0.0918715, -0.880753) +size = Vector3(0.177, 0.148, 0.929) + +[node name="CSGBox3D4" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.227674, -0.174673, -0.880753) +size = Vector3(0.177, 0.148, 0.929) + +[node name="CSGBox3D5" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00246562, -0.314903, -0.880753) +size = Vector3(0.177, 0.148, 0.929) + +[node name="CSGBox3D6" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.259054, -0.125834, -0.880753) +size = Vector3(0.177, 0.148, 0.929) + +[node name="CSGBox3D7" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.26701, 0.102116, -0.880753) +size = Vector3(0.177, 0.148, 0.929) diff --git a/PCs/Universal/ClassCards/Gatling/weapon_gatling.tscn b/PCs/Universal/ClassCards/Gatling/weapon_gatling.tscn new file mode 100644 index 0000000..e24488a --- /dev/null +++ b/PCs/Universal/ClassCards/Gatling/weapon_gatling.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=7 format=3 uid="uid://rcqf3vangjlp"] + +[ext_resource type="Texture2D" uid="uid://d1am28tgvwaa0" path="res://Assets/TextureAtlases/g_accelerator.tres" id="1_n3tw0"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Gatling/speedyweapon.gd" id="2_fkecd"] +[ext_resource type="Resource" uid="uid://ouwge5etb4me" path="res://Resources/WeaponStats/accelerator.tres" id="3_nq6wu"] + +[sub_resource type="Animation" id="Animation_n8b32"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Rect2(0, 0, 64, 64)] +} + +[sub_resource type="Animation" id="Animation_g0h8q"] +resource_name = "shoot" +length = 0.15 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(0, 0), +"update": 0, +"values": [Rect2(64, 0, 64, 64), Rect2(0, 0, 64, 64)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ntl6p"] +_data = { +"RESET": SubResource("Animation_n8b32"), +"shoot": SubResource("Animation_g0h8q") +} + +[node name="Weapon" type="Sprite3D"] +layers = 2 +billboard = 1 +texture_filter = 0 +texture = ExtResource("1_n3tw0") +script = ExtResource("2_fkecd") +stats = ExtResource("3_nq6wu") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_ntl6p") +} + +[node name="RayCast3D" type="RayCast3D" parent="."] +collision_mask = 4 diff --git a/PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres b/PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres new file mode 100644 index 0000000..504d291 --- /dev/null +++ b/PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Card" load_steps=7 format=3 uid="uid://bhmbk26whdsys"] + +[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_4m1rh"] +[ext_resource type="Texture2D" uid="uid://jmxhiwsiw1f5" path="res://Assets/TextureAtlases/g_glue_gun.tres" id="2_xsq3l"] +[ext_resource type="Resource" uid="uid://dhcukj44khkd7" path="res://Resources/TurretStats/glue.tres" id="3_tb5qj"] +[ext_resource type="PackedScene" uid="uid://d24q8j53oiyd4" path="res://PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.tscn" id="4_0jn1x"] +[ext_resource type="PackedScene" uid="uid://dja1b2ke8clo5" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn" id="4_1nhoo"] +[ext_resource type="Resource" uid="uid://dnucn65m12dmq" path="res://Resources/WeaponStats/glue.tres" id="5_qk2lw"] + +[resource] +script = ExtResource("1_4m1rh") +title = "Glue Gun" +rarity = 3 +faction = 0 +sprite = ExtResource("2_xsq3l") +turret = ExtResource("4_1nhoo") +weapon = ExtResource("4_0jn1x") +weapon_stats = ExtResource("5_qk2lw") +tower_stats = ExtResource("3_tb5qj") diff --git a/PCs/Universal/ClassCards/GlueLauncher/stickytower.gd b/PCs/Universal/ClassCards/GlueLauncher/stickytower.gd new file mode 100644 index 0000000..83a9247 --- /dev/null +++ b/PCs/Universal/ClassCards/GlueLauncher/stickytower.gd @@ -0,0 +1,12 @@ +extends Tower +class_name StickyTower + +@export var status_stats : StatusStats + + +func shoot(): + var status = StatusSticky.new() + status.stats = status_stats + status.affected = targeted_enemy + status.affected.status_manager.add_effect(status) + targeted_enemy.add_child(status) diff --git a/PCs/Universal/ClassCards/GlueLauncher/stickyweapon.gd b/PCs/Universal/ClassCards/GlueLauncher/stickyweapon.gd new file mode 100644 index 0000000..14b3b28 --- /dev/null +++ b/PCs/Universal/ClassCards/GlueLauncher/stickyweapon.gd @@ -0,0 +1,19 @@ +extends Weapon +class_name StickyWeapon + +@export var status_stats : StatusStats + +func shoot(): + if other_cooldown <= 0 and stats != null: + other_cooldown = cooldown + $AnimationPlayer.play("shoot") + if $RayCast3D.is_colliding(): + var target = $RayCast3D.get_collider() + if target != null: + var target_hitbox = target.shape_owner_get_owner($RayCast3D.get_collider_shape()) + if target_hitbox is Hitbox: + var status = StatusSticky.new() + status.stats = status_stats + status.affected = target.get_parent() + status.affected.status_manager.add_effect(status) + target.add_child(status) diff --git a/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn b/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn new file mode 100644 index 0000000..778883d --- /dev/null +++ b/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=3 format=3 uid="uid://dja1b2ke8clo5"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/GlueLauncher/stickytower.gd" id="1_0fo13"] +[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="2_f8mxi"] + +[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model")] +script = ExtResource("1_0fo13") +status_stats = ExtResource("2_f8mxi") +model = NodePath("Model") + +[node name="Model" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="Model"] + +[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0158235, 0, -0.956956) +size = Vector3(0.481654, 0.427749, 1.38438) + +[node name="CSGBox3D3" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00590318, 0.717947, 0.210929) +size = Vector3(0.329535, 0.622842, 0.319929) + +[node name="CSGBox3D4" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00590295, 0.453314, -0.265725) +size = Vector3(0.329535, 0.622842, 0.319929) diff --git a/PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.tscn b/PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.tscn new file mode 100644 index 0000000..d37c07d --- /dev/null +++ b/PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=7 format=3 uid="uid://d24q8j53oiyd4"] + +[ext_resource type="Texture2D" uid="uid://jmxhiwsiw1f5" path="res://Assets/TextureAtlases/g_glue_gun.tres" id="1_pl6t8"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Sniper/scopedweapon.gd" id="2_8m6e6"] +[ext_resource type="Resource" uid="uid://dnucn65m12dmq" path="res://Resources/WeaponStats/glue.tres" id="3_li2dn"] + +[sub_resource type="Animation" id="Animation_n8b32"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Rect2(0, 0, 64, 64)] +} + +[sub_resource type="Animation" id="Animation_g0h8q"] +resource_name = "shoot" +length = 0.15 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(0, 0), +"update": 0, +"values": [Rect2(64, 0, 64, 64), Rect2(0, 0, 64, 64)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ntl6p"] +_data = { +"RESET": SubResource("Animation_n8b32"), +"shoot": SubResource("Animation_g0h8q") +} + +[node name="Weapon" type="Sprite3D"] +layers = 2 +billboard = 1 +texture_filter = 0 +texture = ExtResource("1_pl6t8") +script = ExtResource("2_8m6e6") +stats = ExtResource("3_li2dn") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_ntl6p") +} + +[node name="RayCast3D" type="RayCast3D" parent="."] +collision_mask = 4 diff --git a/PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres b/PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres new file mode 100644 index 0000000..dfbaaaf --- /dev/null +++ b/PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Card" load_steps=7 format=3 uid="uid://dh5fjnbp8auw1"] + +[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_dg0td"] +[ext_resource type="Texture2D" uid="uid://clr6kfyci5jqb" path="res://Assets/TextureAtlases/g_rocket_launcher.tres" id="2_duef5"] +[ext_resource type="Resource" uid="uid://duofn25nuu84q" path="res://Resources/TurretStats/rocketlauncher.tres" id="3_tj17y"] +[ext_resource type="Resource" uid="uid://dtfgyt85mp1ar" path="res://Resources/WeaponStats/rocketlauncher.tres" id="4_hwkrq"] +[ext_resource type="PackedScene" uid="uid://cbmoi73hquaer" path="res://PCs/Universal/ClassCards/RocketLauncher/weapon_rocket_launcher.tscn" id="4_ioexd"] +[ext_resource type="PackedScene" uid="uid://br3bd1jmi235x" path="res://PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.tscn" id="4_mvvp4"] + +[resource] +script = ExtResource("1_dg0td") +title = "Rocket Launcher" +rarity = 2 +faction = 0 +sprite = ExtResource("2_duef5") +turret = ExtResource("4_mvvp4") +weapon = ExtResource("4_ioexd") +weapon_stats = ExtResource("4_hwkrq") +tower_stats = ExtResource("3_tj17y") diff --git a/PCs/Universal/ClassCards/RocketLauncher/rocket.gd b/PCs/Universal/ClassCards/RocketLauncher/rocket.gd new file mode 100644 index 0000000..4f67b5d --- /dev/null +++ b/PCs/Universal/ClassCards/RocketLauncher/rocket.gd @@ -0,0 +1,33 @@ +extends RigidBody3D +class_name Rocket + +@export var damage := 10.0 +@export var explosion_range := 6.0 +var target : Node3D +var acceleration := 15.0 +var direction +var lifetime := 15.0 +var time_alive := 0.0 + + +func _process(delta: float) -> void: + time_alive += delta + if time_alive >= lifetime: + explode() + + +func _physics_process(_delta: float) -> void: + if is_instance_valid(target): + direction = global_position.direction_to(target.global_position) + apply_central_force(direction * acceleration) + + +func _on_body_entered(_body: Node) -> void: + explode() + + +func explode(): + for enemy in get_tree().get_nodes_in_group("Enemies"): + if global_position.distance_to(enemy.global_position) <= explosion_range: + enemy.damage(damage) + queue_free() diff --git a/PCs/Universal/ClassCards/RocketLauncher/rocket.tscn b/PCs/Universal/ClassCards/RocketLauncher/rocket.tscn new file mode 100644 index 0000000..6a41aee --- /dev/null +++ b/PCs/Universal/ClassCards/RocketLauncher/rocket.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=5 format=3 uid="uid://hr0dw2533tsl"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket.gd" id="1_7il2o"] +[ext_resource type="Texture2D" uid="uid://b54d5dc4jmlau" path="res://Assets/Textures/bomb.png" id="2_moh5p"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_whkhx"] +bounce = 0.6 + +[sub_resource type="SphereShape3D" id="SphereShape3D_mi0in"] +radius = 0.2 + +[node name="RigidBody3D" type="RigidBody3D"] +collision_layer = 0 +collision_mask = 5 +physics_material_override = SubResource("PhysicsMaterial_whkhx") +gravity_scale = 0.0 +max_contacts_reported = 1 +contact_monitor = true +script = ExtResource("1_7il2o") + +[node name="Node3D" type="Sprite3D" parent="."] +transform = Transform3D(1.4, 0, 0, 0, 1.4, 0, 0, 0, 1.4, 0, 0, 0) +billboard = 1 +texture_filter = 0 +texture = ExtResource("2_moh5p") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("SphereShape3D_mi0in") + +[connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/PCs/Universal/ClassCards/RocketLauncher/rocket_weapon.gd b/PCs/Universal/ClassCards/RocketLauncher/rocket_weapon.gd new file mode 100644 index 0000000..c7709a3 --- /dev/null +++ b/PCs/Universal/ClassCards/RocketLauncher/rocket_weapon.gd @@ -0,0 +1,66 @@ +extends Weapon +class_name RocketWeapon + +@export var rocket_scene : PackedScene +@export var target_icon_scene : PackedScene +var rocket_speed = 20.0 +var target_max := 3 +var targets = [] +var target_icons = [] + + +func _ready() -> void: + super._ready() + for x in target_max: + var icon = target_icon_scene.instantiate() + add_child(icon) + icon.set_visible(false) + target_icons.append(icon) + + +func _process(delta: float) -> void: + super._process(delta) + if !trigger_held or other_cooldown > 0: + return + var target_list = targets.duplicate() + for target in target_list: + if !is_instance_valid(target): + targets.erase(target) + continue + for x in target_icons.size(): + if x < targets.size(): + target_icons[x].global_position = targets[x].global_position + target_icons[x].set_visible(true) + else: + target_icons[x].set_visible(false) + $TextureRect.set_visible(true) + $TextureRect.texture.region = Rect2(128 * targets.size(), 0, 128, 128) + if targets.size() < target_max and $RayCast3D.is_colliding() and !targets.has($RayCast3D.get_collider()): + targets.append($RayCast3D.get_collider()) + + +func _physics_process(_delta: float) -> void: + pass + + +func release_trigger(): + if trigger_held: + super.release_trigger() + shoot() + + +func shoot(): + if other_cooldown <= 0 and stats != null: + other_cooldown = cooldown + $AnimationPlayer.play("shoot") + for target in targets: + var rocket = rocket_scene.instantiate() as Rocket + rocket.position = $RayCast3D.global_position + rocket.damage = stats.damage + rocket.target = target + get_tree().root.add_child(rocket) + rocket.apply_central_impulse(Vector3.UP * 3.0) + targets.clear() + $TextureRect.set_visible(false) + for icon in target_icons: + icon.set_visible(false) diff --git a/PCs/Universal/ClassCards/RocketLauncher/rockettower.gd b/PCs/Universal/ClassCards/RocketLauncher/rockettower.gd new file mode 100644 index 0000000..55b1659 --- /dev/null +++ b/PCs/Universal/ClassCards/RocketLauncher/rockettower.gd @@ -0,0 +1,56 @@ +extends Tower +class_name RocketTower + +var targeted_enemies = [] +@export var rocket_scene : PackedScene +@export var target_max := 3 +var targets = [] + + +func _process(delta: float) -> void: + other_cooldown -= delta + if targets.size() < target_max: + acquire_target() + if targets.size() > 0: + var target_list = targets.duplicate() + for target in target_list: + if !is_instance_valid(target): + targets.erase(target) + continue + if model.global_position.distance_to(target.global_position) > stats.fire_range: + targets.erase(target) + if targets.size() > 0: + targeted_enemy = targets[0] + aim() + if other_cooldown <= 0: + shoot() + other_cooldown = cooldown + + +func shoot(): + for target in targets: + var rocket = rocket_scene.instantiate() as Rocket + rocket.position = model.global_position + rocket.damage = stats.damage + get_tree().root.add_child(rocket) + rocket.target = target + + +func acquire_target(): + var possible_enemies = [] + for enemy in get_tree().get_nodes_in_group("Enemies"): + if model.global_position.distance_to(enemy.global_position) > stats.fire_range: + continue + if !(enemy.stats.target_type & stats.can_target): + continue + if targets.has(enemy): + continue + possible_enemies.append(enemy) + + for x in target_max - targets.size(): + if possible_enemies.size() == 0: + return + var chosen = possible_enemies.pick_random() + possible_enemies.erase(chosen) + targets.append(chosen) + diff --git a/PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.tscn b/PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.tscn new file mode 100644 index 0000000..5f7a568 --- /dev/null +++ b/PCs/Universal/ClassCards/RocketLauncher/tower_rocket_launcher.tscn @@ -0,0 +1,24 @@ +[gd_scene load_steps=4 format=3 uid="uid://br3bd1jmi235x"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/rockettower.gd" id="1_8hb2v"] +[ext_resource type="PackedScene" uid="uid://hr0dw2533tsl" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket.tscn" id="2_by0gu"] +[ext_resource type="Resource" uid="uid://duofn25nuu84q" path="res://Resources/TurretStats/rocketlauncher.tres" id="3_ynh7l"] + +[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model")] +script = ExtResource("1_8hb2v") +rocket_scene = ExtResource("2_by0gu") +stats = ExtResource("3_ynh7l") +model = NodePath("Model") + +[node name="Model" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97939, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="Model"] + +[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.65) +size = Vector3(0.805859, 0.771887, 1.04243) + +[node name="CSGBox3D3" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.20204) +size = Vector3(0.597715, 0.561942, 0.242169) diff --git a/PCs/Universal/ClassCards/RocketLauncher/weapon_rocket_launcher.tscn b/PCs/Universal/ClassCards/RocketLauncher/weapon_rocket_launcher.tscn new file mode 100644 index 0000000..98affaa --- /dev/null +++ b/PCs/Universal/ClassCards/RocketLauncher/weapon_rocket_launcher.tscn @@ -0,0 +1,79 @@ +[gd_scene load_steps=10 format=3 uid="uid://cbmoi73hquaer"] + +[ext_resource type="Texture2D" uid="uid://clr6kfyci5jqb" path="res://Assets/TextureAtlases/g_rocket_launcher.tres" id="1_67vj1"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket_weapon.gd" id="2_rfuq6"] +[ext_resource type="Resource" uid="uid://dtfgyt85mp1ar" path="res://Resources/WeaponStats/rocketlauncher.tres" id="3_7mndo"] +[ext_resource type="PackedScene" uid="uid://hr0dw2533tsl" path="res://PCs/Universal/ClassCards/RocketLauncher/rocket.tscn" id="3_xn783"] +[ext_resource type="PackedScene" uid="uid://csufsbi64asau" path="res://Scenes/target_icon.tscn" id="4_ptwpb"] +[ext_resource type="Texture2D" uid="uid://bgeu8dnqaxq7v" path="res://Assets/TextureAtlases/target_list.tres" id="5_nbrvn"] + +[sub_resource type="Animation" id="Animation_n8b32"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Rect2(0, 0, 64, 64)] +} + +[sub_resource type="Animation" id="Animation_g0h8q"] +resource_name = "shoot" +length = 0.15 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(0, 0), +"update": 0, +"values": [Rect2(64, 0, 64, 64), Rect2(0, 0, 64, 64)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ntl6p"] +_data = { +"RESET": SubResource("Animation_n8b32"), +"shoot": SubResource("Animation_g0h8q") +} + +[node name="Weapon" type="Sprite3D"] +layers = 2 +billboard = 1 +texture_filter = 0 +texture = ExtResource("1_67vj1") +script = ExtResource("2_rfuq6") +rocket_scene = ExtResource("3_xn783") +target_icon_scene = ExtResource("4_ptwpb") +stats = ExtResource("3_7mndo") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_ntl6p") +} + +[node name="RayCast3D" type="RayCast3D" parent="."] +collision_mask = 4 + +[node name="TextureRect" type="TextureRect" parent="."] +visible = false +texture_filter = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("5_nbrvn") diff --git a/PCs/Universal/ClassCards/Sniper/card_sniper.tres b/PCs/Universal/ClassCards/Sniper/card_sniper.tres new file mode 100644 index 0000000..345c409 --- /dev/null +++ b/PCs/Universal/ClassCards/Sniper/card_sniper.tres @@ -0,0 +1,19 @@ +[gd_resource type="Resource" script_class="Card" load_steps=7 format=3 uid="uid://cvf5bxtu6er17"] + +[ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_5vmtk"] +[ext_resource type="Texture2D" uid="uid://fmqq24n7rwvm" path="res://Assets/TextureAtlases/g_sniper.tres" id="2_skiu7"] +[ext_resource type="Resource" uid="uid://85iany3x0uv2" path="res://Resources/WeaponStats/sniper.tres" id="3_acfmb"] +[ext_resource type="PackedScene" uid="uid://v21rc7vtqp8l" path="res://Scenes/Weapons/scopedweapon.tscn" id="3_i0e3w"] +[ext_resource type="Resource" uid="uid://ddw7pj1ckwmp8" path="res://Resources/TurretStats/sniper.tres" id="3_tfyul"] +[ext_resource type="PackedScene" uid="uid://ryhc48vl36fc" path="res://Scenes/Towers/snipertower.tscn" id="4_kbb6b"] + +[resource] +script = ExtResource("1_5vmtk") +title = "Sniper" +rarity = 4 +faction = 0 +sprite = ExtResource("2_skiu7") +turret = ExtResource("4_kbb6b") +weapon = ExtResource("3_i0e3w") +weapon_stats = ExtResource("3_acfmb") +tower_stats = ExtResource("3_tfyul") diff --git a/PCs/Universal/ClassCards/Sniper/scopedweapon.gd b/PCs/Universal/ClassCards/Sniper/scopedweapon.gd new file mode 100644 index 0000000..955de9e --- /dev/null +++ b/PCs/Universal/ClassCards/Sniper/scopedweapon.gd @@ -0,0 +1,15 @@ +extends Weapon +class_name ScopedWeapon + +var scope_mask : Texture + + +func hold_second_trigger(): + super.hold_second_trigger() + $CanvasLayer.set_visible(true) + hero.zoom_factor = 3.0 + + +func release_second_trigger(): + super.release_second_trigger() + $CanvasLayer.set_visible(false) diff --git a/PCs/Universal/ClassCards/Sniper/tower_sniper.tscn b/PCs/Universal/ClassCards/Sniper/tower_sniper.tscn new file mode 100644 index 0000000..4bd0769 --- /dev/null +++ b/PCs/Universal/ClassCards/Sniper/tower_sniper.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=3 uid="uid://ryhc48vl36fc"] + +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Assault/tower.gd" id="1_tmpm5"] +[ext_resource type="Resource" uid="uid://ddw7pj1ckwmp8" path="res://Resources/TurretStats/sniper.tres" id="2_opda8"] + +[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model")] +script = ExtResource("1_tmpm5") +stats = ExtResource("2_opda8") +model = NodePath("Model") + +[node name="Model" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="Model"] + +[node name="CSGBox3D3" type="CSGBox3D" parent="Model"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.776406) +size = Vector3(0.481654, 0.427749, 1.38438) diff --git a/PCs/Universal/ClassCards/Sniper/weapon_sniper.tscn b/PCs/Universal/ClassCards/Sniper/weapon_sniper.tscn new file mode 100644 index 0000000..4518bbf --- /dev/null +++ b/PCs/Universal/ClassCards/Sniper/weapon_sniper.tscn @@ -0,0 +1,85 @@ +[gd_scene load_steps=8 format=3 uid="uid://v21rc7vtqp8l"] + +[ext_resource type="Texture2D" uid="uid://fmqq24n7rwvm" path="res://Assets/TextureAtlases/g_sniper.tres" id="1_6a01i"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Sniper/scopedweapon.gd" id="2_qemq6"] +[ext_resource type="Resource" uid="uid://85iany3x0uv2" path="res://Resources/WeaponStats/sniper.tres" id="3_3c36k"] +[ext_resource type="Texture2D" uid="uid://bepgxu7wtcl1i" path="res://Assets/Textures/scopetest.png" id="3_pyugo"] + +[sub_resource type="Animation" id="Animation_n8b32"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Rect2(0, 0, 64, 64)] +} + +[sub_resource type="Animation" id="Animation_g0h8q"] +resource_name = "shoot" +length = 0.15 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:texture:region") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.15), +"transitions": PackedFloat32Array(0, 0), +"update": 0, +"values": [Rect2(64, 0, 64, 64), Rect2(0, 0, 64, 64)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_ntl6p"] +_data = { +"RESET": SubResource("Animation_n8b32"), +"shoot": SubResource("Animation_g0h8q") +} + +[node name="Weapon" type="Sprite3D"] +layers = 2 +billboard = 1 +texture_filter = 0 +texture = ExtResource("1_6a01i") +script = ExtResource("2_qemq6") +stats = ExtResource("3_3c36k") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_ntl6p") +} + +[node name="RayCast3D" type="RayCast3D" parent="."] +collision_mask = 4 + +[node name="CanvasLayer" type="CanvasLayer" parent="."] +layer = 2 +visible = false + +[node name="TextureRect" type="TextureRect" parent="CanvasLayer"] +clip_children = 1 +visibility_layer = 2 +texture_filter = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("3_pyugo") + +[node name="ColorRect" type="ColorRect" parent="CanvasLayer/TextureRect"] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +color = Color(0, 0, 0, 1) diff --git a/PCs/hero.gd b/PCs/hero.gd new file mode 100644 index 0000000..12c5864 --- /dev/null +++ b/PCs/hero.gd @@ -0,0 +1,211 @@ +extends CharacterBody3D +class_name Hero + +signal ready_state_changed(state) +signal spawned +signal died + +@export var hero_class: HeroClass +@export var camera : Camera3D +@export var left_hand : Node3D +@export var right_hand : Node3D +@export var right_hand_animator : AnimationPlayer +@export var edit_tool : EditTool +@export var gauntlet_sprite : Sprite3D +@export var sprite : EightDirectionSprite3D +@export var interaction_raycast : RayCast3D +@export var inventory : Inventory +@export var weapon : Weapon +@export var card : CardInHand +@export var pause_menu_scene : PackedScene +@export var weapon_scene : PackedScene +@export var hud : HUD +@export var movement : PlayerMovement + +var equipped_card : Card +var paused := false +var editing_mode := true +var profile: PlayerProfile +var ready_state := false : + set(value): + ready_state = value + networked_set_ready_state.rpc(ready_state) + ready_state_changed.emit(ready_state) +var currency := 0 : + set(value): + currency = value + hud.set_currency_count(value) + get: + return currency +@export var sprint_zoom_speed := 0.2 + + +func _ready() -> void: + if is_multiplayer_authority(): + right_hand_animator.play("weapon_sway") + right_hand_animator.speed_scale = 0 + hud.set_visible(true) + camera.make_current() + sprite.queue_free() + else: + camera.set_visible(false) + if weapon != null: + weapon.set_raycast_origin(camera) + inventory.contents.append_array(hero_class.deck) + sprite.texture = hero_class.texture + check_left_hand_valid() + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + + +func _physics_process(delta: float) -> void: + if !is_multiplayer_authority() or paused: + return + if movement.input_vector == Vector2.ZERO: + right_hand_animator.speed_scale = 0 + elif movement.sprinting: + right_hand_animator.speed_scale = 1 + else: + right_hand_animator.speed_scale = 0.6 + + +func _process(delta: float) -> void: + if !is_multiplayer_authority() or paused: + return + if !movement.sprinting: + movement.zoom_factor += sprint_zoom_speed * 2.0 * delta + if movement.zoom_factor > 1.0: + movement.zoom_factor = 1.0 + + if editing_mode: + if edit_tool.is_looking_at_tower_base: + card.view_tower() + else: + card.view_weapon() + if Input.is_action_just_pressed("Interact"): + edit_tool.interact() + if interaction_raycast.get_collider() is InteractButton: + var button = interaction_raycast.get_collider() as InteractButton + if currency >= button.press_cost: + button.press() + currency -= button.press_cost + if interaction_raycast.get_collider() is ItemCard: + inventory.add(interaction_raycast.get_collider().pick_up()) + if Input.is_action_just_pressed("Equip In Gauntlet"): + equip_weapon() + if Input.is_action_just_pressed("Select Next Card"): + inventory.increment_selected() + if Input.is_action_just_pressed("Select Previous Card"): + inventory.decrement_selected() + + if Input.is_action_just_pressed("Primary Fire"): + edit_tool.interact_key_held = true + if Input.is_action_just_released("Primary Fire"): + edit_tool.interact_key_held = false + if weapon != null: + weapon.release_trigger() + weapon.release_second_trigger() + else: + if weapon != null and Input.is_action_just_pressed("Primary Fire"): + weapon.hold_trigger() + if weapon != null and Input.is_action_just_released("Primary Fire"): + weapon.release_trigger() + if weapon != null and Input.is_action_pressed("Secondary Fire"): + weapon.hold_second_trigger() + if weapon != null and Input.is_action_just_released("Secondary Fire"): + weapon.release_second_trigger() + if weapon != null and Input.is_action_pressed("Primary Fire"): + movement.can_sprint = false + if weapon != null and Input.is_action_pressed("Secondary Fire"): + movement.can_sprint = false + + if movement.sprinting: + movement.zoom_factor -= sprint_zoom_speed * delta + if movement.zoom_factor <= 1.0 - movement.sprint_zoom_factor: + movement.zoom_factor = 1.0 - movement.sprint_zoom_factor + camera.fov = Data.preferences.hfov * (1.0 / movement.zoom_factor) + + if Input.is_action_just_pressed("View Map"): + hud.maximise_minimap(Game.level) + #Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + if Input.is_action_just_released("View Map"): + hud.minimize_minimap(self) + #Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + check_left_hand_valid() + + +func _unhandled_input(event: InputEvent) -> void: + if !is_multiplayer_authority() or paused: + return + if editing_mode and event.is_action_pressed("Ready"): + edit_tool.interact_key_held = false + ready_state = true + if event.is_action_pressed("Pause"): + var menu = pause_menu_scene.instantiate() as PauseMenu + pause() + menu.closed.connect(unpause) + hud.add_child(menu) + + +func unpause(): + paused = false + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + + +func pause(): + paused = true + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + + +func enter_editing_mode(value): + hud.set_wave_count(value + 1) + editing_mode = true + edit_tool.enabled = true + check_left_hand_valid() + if weapon != null: + weapon.release_trigger() + + +func exit_editing_mode(value): + hud.set_wave_count(value) + edit_tool.enabled = false + left_hand.set_visible(false) + editing_mode = false + + +func check_left_hand_valid(): + if inventory.contents.size() == 0: + left_hand.set_visible(false) + #gauntlet.texture.region = Rect2(64, 0, 64, 64) + else: + left_hand.set_visible(true) + #gauntlet.texture.region = Rect2(0, 0, 64, 64) + card.set_card(inventory.selected_item) + + +func equip_weapon(): + if weapon != null: + unequip_weapon() + return + if inventory.contents.size() > 0: + equipped_card = inventory.remove() + weapon = equipped_card.weapon.instantiate() + right_hand.add_child(weapon) + gauntlet_sprite.set_visible(false) + weapon.set_raycast_origin(camera) + weapon.set_hero(self) + check_left_hand_valid() + + +func unequip_weapon(): + gauntlet_sprite.set_visible(true) + weapon.queue_free() + inventory.add(equipped_card) + equipped_card = null + check_left_hand_valid() + + +#MULTIPLAYER NETWORKED FUNCTIONS +@rpc("reliable") +func networked_set_ready_state(state: bool): + ready_state = state + ready_state_changed.emit(state) diff --git a/PCs/hero.tscn b/PCs/hero.tscn new file mode 100644 index 0000000..9eb2938 --- /dev/null +++ b/PCs/hero.tscn @@ -0,0 +1,425 @@ +[gd_scene load_steps=29 format=3 uid="uid://dxgxbtf68lcv5"] + +[ext_resource type="Script" path="res://PCs/hero.gd" id="1_pihpe"] +[ext_resource type="Resource" uid="uid://b5pc3frhx467q" path="res://PCs/Red/red.tres" id="2_dbyo0"] +[ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="2_ib0t5"] +[ext_resource type="Texture2D" uid="uid://dkbkam81k355s" path="res://Assets/TextureAtlases/gauntlet.tres" id="3_5myy0"] +[ext_resource type="PackedScene" uid="uid://buvgdem68wtev" path="res://Scenes/Menus/pause_menu.tscn" id="3_avnsx"] +[ext_resource type="PackedScene" uid="uid://d1xe6hsq05110" path="res://PCs/Universal/ClassCards/Assault/weapon_assault.tscn" id="4_b0lpv"] +[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="4_mwtvp"] +[ext_resource type="PackedScene" uid="uid://dqt1ggtkpkuhs" path="res://Scenes/gauntlet.tscn" id="5_jlxb3"] +[ext_resource type="Script" path="res://Scripts/inventory.gd" id="6_cf5ap"] +[ext_resource type="Texture2D" uid="uid://hxev3a2ktya" path="res://Assets/TextureAtlases/red.tres" id="6_loffy"] +[ext_resource type="Texture2D" uid="uid://d0btebva6djdl" path="res://Assets/Textures/crosshair.png" id="8_fq3f6"] +[ext_resource type="Script" path="res://Scripts/HUD.gd" id="8_yl6ka"] +[ext_resource type="Script" path="res://Scripts/on_top_camera.gd" id="11_4sdwe"] +[ext_resource type="Script" path="res://Scripts/minimap_cam.gd" id="12_3hpi3"] +[ext_resource type="Texture2D" uid="uid://b6iego7256jf2" path="res://Assets/Textures/wavecounter.png" id="14_l34nu"] +[ext_resource type="PackedScene" uid="uid://24x18qxqhy0i" path="res://Scenes/UI/lives_bar.tscn" id="15_cqpib"] +[ext_resource type="Texture2D" uid="uid://c60fh34ttgcvh" path="res://Assets/Textures/minimap_player.png" id="15_nhlam"] +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="15_q3yot"] +[ext_resource type="Texture2D" uid="uid://cqnapc8cscl7i" path="res://Assets/Textures/border.png" id="16_x1xjr"] +[ext_resource type="Script" path="res://PCs/player_movement.gd" id="20_cfhw8"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jbu13"] + +[sub_resource type="Environment" id="Environment_ekmug"] + +[sub_resource type="Animation" id="Animation_2q50p"] +resource_name = "weapon_sway" +length = 0.8 +loop_mode = 1 +tracks/0/type = "position_3d" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = PackedFloat32Array(0, 1, 0.615, -0.275, -1, 0.2, 1, 0.59, -0.255, -1, 0.4, 1, 0.615, -0.275, -1, 0.6, 1, 0.66, -0.255, -1, 0.8, 1, 0.615, -0.275, -1) + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_2wknc"] +_data = { +"weapon_sway": SubResource("Animation_2q50p") +} + +[sub_resource type="ViewportTexture" id="ViewportTexture_8f12g"] +viewport_path = NodePath("SubViewport/Head2/LeftHand/SubViewport") + +[sub_resource type="Environment" id="Environment_cilxe"] +background_mode = 1 +background_color = Color(0.282353, 0.615686, 0.278431, 1) + +[sub_resource type="ViewportTexture" id="ViewportTexture_mk87g"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ViewportTexture" id="ViewportTexture_574jy"] +viewport_path = NodePath("MiniMapViewport") + +[node name="Character" type="CharacterBody3D" node_paths=PackedStringArray("camera", "left_hand", "right_hand", "right_hand_animator", "edit_tool", "gauntlet_sprite", "sprite", "interaction_raycast", "inventory", "card", "hud", "movement")] +collision_layer = 2 +collision_mask = 37 +script = ExtResource("1_pihpe") +hero_class = ExtResource("2_dbyo0") +camera = NodePath("Head") +left_hand = NodePath("SubViewport/Head2/LeftHand") +right_hand = NodePath("SubViewport/Head2/RightHand") +right_hand_animator = NodePath("SubViewport/Head2/RightHand/AnimationPlayer") +edit_tool = NodePath("Head/EditTool") +gauntlet_sprite = NodePath("SubViewport/Head2/RightHand/Gauntlet") +sprite = NodePath("EightDirectionSprite") +interaction_raycast = NodePath("Head/RayCast3D") +inventory = NodePath("Inventory") +card = NodePath("SubViewport/Head2/LeftHand/SubViewport/Node2D") +pause_menu_scene = ExtResource("3_avnsx") +weapon_scene = ExtResource("4_b0lpv") +hud = NodePath("HUD") +movement = NodePath("PlayerMovement") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +shape = SubResource("CapsuleShape3D_jbu13") + +[node name="Head" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +keep_aspect = 0 +cull_mask = 1048569 +fov = 100.0 + +[node name="EditTool" parent="Head" node_paths=PackedStringArray("hero", "inventory") instance=ExtResource("5_jlxb3")] +hero = NodePath("../..") +inventory = NodePath("../../Inventory") + +[node name="RayCast3D" type="RayCast3D" parent="Head"] +target_position = Vector3(0, 0, -2) +collision_mask = 24 + +[node name="EightDirectionSprite" parent="." instance=ExtResource("2_ib0t5")] +transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0.915529, 0) +texture = ExtResource("6_loffy") + +[node name="Inventory" type="Node" parent="."] +script = ExtResource("6_cf5ap") + +[node name="SubViewport" type="SubViewport" parent="."] +transparent_bg = true +size = Vector2i(1920, 1080) +render_target_update_mode = 4 + +[node name="Head2" type="Camera3D" parent="SubViewport" node_paths=PackedStringArray("clone_camera")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +cull_mask = 2 +environment = SubResource("Environment_ekmug") +projection = 1 +script = ExtResource("11_4sdwe") +clone_camera = NodePath("../../Head") + +[node name="RightHand" type="Node3D" parent="SubViewport/Head2"] +transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0.66, -0.255, -1) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="SubViewport/Head2/RightHand"] +libraries = { +"": SubResource("AnimationLibrary_2wknc") +} + +[node name="Gauntlet" type="Sprite3D" parent="SubViewport/Head2/RightHand"] +layers = 2 +texture_filter = 0 +texture = ExtResource("3_5myy0") + +[node name="LeftHand" type="Node3D" parent="SubViewport/Head2"] +transform = Transform3D(0.235, 0, 0, 0, 0.235, 0, 0, 0, 0.235, -0.665, -0.275, -1) + +[node name="SubViewport" type="SubViewport" parent="SubViewport/Head2/LeftHand"] +transparent_bg = true +size = Vector2i(192, 192) +render_target_update_mode = 4 + +[node name="Node2D" parent="SubViewport/Head2/LeftHand/SubViewport" instance=ExtResource("4_mwtvp")] + +[node name="Sprite3D" type="Sprite3D" parent="SubViewport/Head2/LeftHand"] +layers = 2 +texture_filter = 0 +texture = SubResource("ViewportTexture_8f12g") + +[node name="MiniMapViewport" type="SubViewport" parent="."] +size = Vector2i(256, 256) +render_target_update_mode = 4 + +[node name="Camera3D" type="Camera3D" parent="MiniMapViewport" node_paths=PackedStringArray("anchor")] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 3.28551, 0) +cull_mask = 4 +environment = SubResource("Environment_cilxe") +projection = 1 +size = 15.0 +script = ExtResource("12_3hpi3") +anchor = NodePath("../..") +face_north = true + +[node name="HUD" type="CanvasLayer" parent="." node_paths=PackedStringArray("wave_count", "lives_count", "enemy_count", "currency_count", "crosshair", "minimap", "minimap_cam", "minimap_viewport", "fps_label", "enemy_sprites", "enemy_counts")] +script = ExtResource("8_yl6ka") +wave_count = NodePath("WaveCount") +lives_count = NodePath("LivesCount") +enemy_count = NodePath("EnemyCount") +currency_count = NodePath("Currency") +crosshair = NodePath("Crosshair") +minimap = NodePath("TextureRect2") +minimap_cam = NodePath("../MiniMapViewport/Camera3D") +minimap_viewport = NodePath("../MiniMapViewport") +fps_label = NodePath("Label") +enemy_sprites = [NodePath("TextureRect4/TextureRect"), NodePath("TextureRect4/TextureRect2"), NodePath("TextureRect4/TextureRect3"), NodePath("TextureRect4/TextureRect4"), NodePath("TextureRect4/TextureRect5")] +enemy_counts = [NodePath("TextureRect4/TextureRect/Label"), NodePath("TextureRect4/TextureRect2/Label2"), NodePath("TextureRect4/TextureRect3/Label3"), NodePath("TextureRect4/TextureRect4/Label4"), NodePath("TextureRect4/TextureRect5/Label5")] + +[node name="TextureRect4" type="TextureRect" parent="HUD"] +texture_filter = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -154.0 +offset_top = 22.0 +offset_right = 154.0 +offset_bottom = 116.0 +grow_horizontal = 2 +mouse_filter = 2 +texture = ExtResource("14_l34nu") + +[node name="TextureRect" type="TextureRect" parent="HUD/TextureRect4"] +visible = false +layout_mode = 0 +offset_right = 64.0 +offset_bottom = 64.0 +texture = ExtResource("15_q3yot") + +[node name="Label" type="Label" parent="HUD/TextureRect4/TextureRect"] +layout_mode = 0 +offset_left = 28.01 +offset_top = 41.81 +offset_right = 68.01 +offset_bottom = 66.8101 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 5 +theme_override_font_sizes/font_size = 15 +text = "999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="TextureRect2" type="TextureRect" parent="HUD/TextureRect4"] +visible = false +layout_mode = 0 +offset_left = 61.0 +offset_right = 125.0 +offset_bottom = 64.0 +texture = ExtResource("15_q3yot") + +[node name="Label2" type="Label" parent="HUD/TextureRect4/TextureRect2"] +layout_mode = 0 +offset_left = 28.745 +offset_top = 41.81 +offset_right = 68.7451 +offset_bottom = 66.8101 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 5 +theme_override_font_sizes/font_size = 15 +text = "999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="TextureRect3" type="TextureRect" parent="HUD/TextureRect4"] +visible = false +layout_mode = 0 +offset_left = 122.0 +offset_right = 186.0 +offset_bottom = 64.0 +texture = ExtResource("15_q3yot") + +[node name="Label3" type="Label" parent="HUD/TextureRect4/TextureRect3"] +layout_mode = 0 +offset_left = 29.29 +offset_top = 41.81 +offset_right = 69.2901 +offset_bottom = 66.8101 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 5 +theme_override_font_sizes/font_size = 15 +text = "999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="TextureRect4" type="TextureRect" parent="HUD/TextureRect4"] +visible = false +layout_mode = 0 +offset_left = 183.0 +offset_right = 247.0 +offset_bottom = 64.0 +texture = ExtResource("15_q3yot") + +[node name="Label4" type="Label" parent="HUD/TextureRect4/TextureRect4"] +layout_mode = 0 +offset_left = 29.0 +offset_top = 41.81 +offset_right = 69.0 +offset_bottom = 66.8101 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 5 +theme_override_font_sizes/font_size = 15 +text = "999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="TextureRect5" type="TextureRect" parent="HUD/TextureRect4"] +visible = false +layout_mode = 0 +offset_left = 244.0 +offset_right = 308.0 +offset_bottom = 64.0 +texture = ExtResource("15_q3yot") + +[node name="Label5" type="Label" parent="HUD/TextureRect4/TextureRect5"] +layout_mode = 0 +offset_left = 29.0 +offset_top = 41.81 +offset_right = 69.0 +offset_bottom = 66.8101 +theme_override_colors/font_color = Color(1, 1, 1, 1) +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 5 +theme_override_font_sizes/font_size = 15 +text = "999" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="WaveCount" type="Label" parent="HUD"] +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -30.0 +offset_top = 83.0 +offset_right = 30.0 +offset_bottom = 26.0 +grow_horizontal = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "1" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="EnemyCount" type="Label" parent="HUD"] +offset_left = 10.0 +offset_top = 80.0 +offset_right = 123.0 +offset_bottom = 106.0 +text = "Enemies left: 0" + +[node name="Crosshair" type="TextureRect" parent="HUD"] +texture_filter = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = ExtResource("8_fq3f6") + +[node name="TextureRect" type="TextureRect" parent="HUD"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +texture = SubResource("ViewportTexture_mk87g") + +[node name="TextureRect2" type="TextureRect" parent="HUD"] +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -256.0 +offset_top = 40.0 +offset_right = -40.0 +offset_bottom = 256.0 +grow_horizontal = 0 +mouse_filter = 2 +texture = SubResource("ViewportTexture_574jy") + +[node name="Label" type="Label" parent="HUD"] +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -40.0 +offset_bottom = 26.0 +grow_horizontal = 0 +text = "FPS: " +horizontal_alignment = 2 +vertical_alignment = 1 + +[node name="LivesBar" parent="HUD" instance=ExtResource("15_cqpib")] +anchors_preset = 0 +anchor_right = 0.0 +anchor_bottom = 0.0 +offset_left = 10.0 +offset_top = 10.0 +offset_right = 214.0 +offset_bottom = 32.0 +grow_horizontal = 1 +grow_vertical = 1 +scale = Vector2(3, 3) +mouse_filter = 2 + +[node name="LivesCount" type="Label" parent="HUD"] +offset_left = -5.0 +offset_top = 15.0 +offset_right = 100.0 +offset_bottom = 72.0 +theme_override_colors/font_color = Color(0.65098, 0.227451, 0.243137, 1) +theme_override_font_sizes/font_size = 37 +text = "120 +" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="TextureRect3" type="TextureRect" parent="HUD"] +texture_filter = 1 +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -262.0 +offset_top = 37.0 +offset_right = -37.0 +offset_bottom = 336.0 +grow_horizontal = 0 +mouse_filter = 2 +texture = ExtResource("16_x1xjr") + +[node name="Currency" type="Label" parent="HUD"] +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -99.0 +offset_top = 298.0 +offset_right = -57.0 +offset_bottom = 352.0 +grow_horizontal = 0 +theme_override_colors/font_color = Color(0.988235, 0.909804, 0.65098, 1) +theme_override_font_sizes/font_size = 37 +text = "20" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="MinimapIcon" type="Sprite3D" parent="."] +transform = Transform3D(4, 0, 0, 0, 0.0698095, 3.99939, 0, -3.99939, 0.0698095, 0, 2.86288, 0) +layers = 4 +texture_filter = 0 +texture = ExtResource("15_nhlam") + +[node name="PlayerMovement" type="Node" parent="." node_paths=PackedStringArray("player", "head")] +script = ExtResource("20_cfhw8") +player = NodePath("..") +head = NodePath("../Head") diff --git a/PCs/player_movement.gd b/PCs/player_movement.gd new file mode 100644 index 0000000..bf22275 --- /dev/null +++ b/PCs/player_movement.gd @@ -0,0 +1,69 @@ +extends Node +class_name PlayerMovement + +@export var player : CharacterBody3D +@export var head : Camera3D +@export var movement_speed := 3.5 +@export var sprint_boost := 0.1 +@export var acceleration := 0.8 +@export var friction_percentage := 0.15 +var zoom_factor := 1.0 +var input_vector : Vector2 +var can_sprint := true +var sprint_zoom_factor := 0.08 +var sprinting := false +var head_angle := 0.0 +var look_sens : float : + set(value): + return + get: + return Data.preferences.mouse_sens / 40000.0 + + +func _physics_process(delta: float) -> void: + var accel = acceleration + if sprinting: + accel = acceleration + sprint_boost + var result_vector = input_vector * accel + var down_velocity = player.velocity.y + player.velocity = player.velocity.limit_length(player.velocity.length() * (1.0 - friction_percentage)) + player.velocity += ((player.transform.basis.z * result_vector.y) + (player.transform.basis.x * result_vector.x)) + player.velocity.y = down_velocity + player.velocity += Vector3.DOWN * 9.81 * delta + player.move_and_slide() + sync_position.rpc(player.position) + sync_rotation.rpc(player.rotation) + + +func _process(delta: float) -> void: + can_sprint = true + input_vector = Input.get_vector("Move Left", "Move Right", "Move Forward", "Move Backward") + if input_vector.y >= 0: + can_sprint = false + if Data.preferences.toggle_sprint: + if Input.is_action_just_pressed("Sprint"): + sprinting = !sprinting + else: + sprinting = Input.is_action_pressed("Sprint") + if !can_sprint: + sprinting = false + if Input.is_action_just_pressed("Jump") and player.is_on_floor(): + player.velocity.y += 4.5 + + +func _unhandled_input(event: InputEvent) -> void: + if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED: + player.rotation.y -= event.relative.x * (look_sens / zoom_factor) * (-1 if Data.preferences.invert_lookX else 1) + head_angle -= event.relative.y * (look_sens / zoom_factor) * (-1 if Data.preferences.invert_lookY else 1) + head_angle = clamp(head_angle, -1.5, 1.5) + head.rotation.x = head_angle + + +@rpc +func sync_position(vec): + player.position = vec + + +@rpc +func sync_rotation(rot): + player.rotation = rot diff --git a/Resources/Keymaps/azerty.tres b/Resources/Keymaps/azerty.tres new file mode 100644 index 0000000..3b90fa5 --- /dev/null +++ b/Resources/Keymaps/azerty.tres @@ -0,0 +1,75 @@ +[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=14 format=3 uid="uid://24x6dxeyp6q"] + +[ext_resource type="Script" path="res://Scripts/Resources/player_keymap.gd" id="1_mq1d3"] + +[sub_resource type="InputEventKey" id="InputEventKey_x2tr7"] +device = -1 +keycode = 65 +unicode = 97 + +[sub_resource type="InputEventKey" id="InputEventKey_km24n"] +device = -1 +keycode = 69 +unicode = 101 + +[sub_resource type="InputEventKey" id="InputEventKey_k7imb"] +device = -1 +keycode = 32 +unicode = 32 + +[sub_resource type="InputEventKey" id="InputEventKey_bkkdp"] +device = -1 +keycode = 83 +unicode = 115 + +[sub_resource type="InputEventKey" id="InputEventKey_sflgv"] +device = -1 +keycode = 90 +unicode = 122 + +[sub_resource type="InputEventKey" id="InputEventKey_gpfw7"] +device = -1 +keycode = 81 +unicode = 113 + +[sub_resource type="InputEventKey" id="InputEventKey_h2ivp"] +device = -1 +keycode = 68 +unicode = 100 + +[sub_resource type="InputEventKey" id="InputEventKey_tghoj"] +device = -1 +keycode = 4194309 + +[sub_resource type="InputEventKey" id="InputEventKey_wow3c"] +device = -1 +keycode = 4194305 + +[sub_resource type="InputEventKey" id="InputEventKey_wge4x"] +device = -1 +keycode = 70 +unicode = 102 + +[sub_resource type="InputEventKey" id="InputEventKey_08u8b"] +device = -1 +keycode = 4194325 + +[sub_resource type="InputEventKey" id="InputEventKey_jtv7p"] +device = -1 +keycode = 4194306 + +[resource] +script = ExtResource("1_mq1d3") +title = "AZERTY" +move_forward = SubResource("InputEventKey_sflgv") +move_backward = SubResource("InputEventKey_bkkdp") +move_left = SubResource("InputEventKey_gpfw7") +move_right = SubResource("InputEventKey_h2ivp") +jump = SubResource("InputEventKey_k7imb") +sprint = SubResource("InputEventKey_08u8b") +interact = SubResource("InputEventKey_km24n") +open_text_chat = SubResource("InputEventKey_tghoj") +ready = SubResource("InputEventKey_wge4x") +pause = SubResource("InputEventKey_wow3c") +equip_card_in_gauntlet = SubResource("InputEventKey_x2tr7") +view_map = SubResource("InputEventKey_jtv7p") diff --git a/Resources/Keymaps/colemak.tres b/Resources/Keymaps/colemak.tres new file mode 100644 index 0000000..a7da277 --- /dev/null +++ b/Resources/Keymaps/colemak.tres @@ -0,0 +1,75 @@ +[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=14 format=3 uid="uid://bimicdfsvbsfe"] + +[ext_resource type="Script" path="res://Scripts/Resources/player_keymap.gd" id="1_ea4lr"] + +[sub_resource type="InputEventKey" id="InputEventKey_vtcll"] +device = -1 +keycode = 81 +unicode = 113 + +[sub_resource type="InputEventKey" id="InputEventKey_43xjm"] +device = -1 +keycode = 70 +unicode = 102 + +[sub_resource type="InputEventKey" id="InputEventKey_yuctl"] +device = -1 +keycode = 32 +unicode = 32 + +[sub_resource type="InputEventKey" id="InputEventKey_73pxv"] +device = -1 +keycode = 82 +unicode = 114 + +[sub_resource type="InputEventKey" id="InputEventKey_nvtcc"] +device = -1 +keycode = 87 +unicode = 119 + +[sub_resource type="InputEventKey" id="InputEventKey_h2yjp"] +device = -1 +keycode = 65 +unicode = 97 + +[sub_resource type="InputEventKey" id="InputEventKey_xvv7x"] +device = -1 +keycode = 83 +unicode = 115 + +[sub_resource type="InputEventKey" id="InputEventKey_ksd1d"] +device = -1 +keycode = 4194309 + +[sub_resource type="InputEventKey" id="InputEventKey_7ynrb"] +device = -1 +keycode = 4194305 + +[sub_resource type="InputEventKey" id="InputEventKey_0pbgp"] +device = -1 +keycode = 84 +unicode = 116 + +[sub_resource type="InputEventKey" id="InputEventKey_opngu"] +device = -1 +keycode = 4194325 + +[sub_resource type="InputEventKey" id="InputEventKey_f1w6s"] +device = -1 +keycode = 4194306 + +[resource] +script = ExtResource("1_ea4lr") +title = "COLEMAK" +move_forward = SubResource("InputEventKey_nvtcc") +move_backward = SubResource("InputEventKey_73pxv") +move_left = SubResource("InputEventKey_h2yjp") +move_right = SubResource("InputEventKey_xvv7x") +jump = SubResource("InputEventKey_yuctl") +sprint = SubResource("InputEventKey_opngu") +interact = SubResource("InputEventKey_43xjm") +open_text_chat = SubResource("InputEventKey_ksd1d") +ready = SubResource("InputEventKey_0pbgp") +pause = SubResource("InputEventKey_7ynrb") +equip_card_in_gauntlet = SubResource("InputEventKey_vtcll") +view_map = SubResource("InputEventKey_f1w6s") diff --git a/Resources/Keymaps/dvorak.tres b/Resources/Keymaps/dvorak.tres new file mode 100644 index 0000000..d5077bc --- /dev/null +++ b/Resources/Keymaps/dvorak.tres @@ -0,0 +1,75 @@ +[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=14 format=3 uid="uid://qgpkrp08tx5l"] + +[ext_resource type="Script" path="res://Scripts/Resources/player_keymap.gd" id="1_e3tjt"] + +[sub_resource type="InputEventKey" id="InputEventKey_62tdh"] +device = -1 +keycode = 39 +unicode = 39 + +[sub_resource type="InputEventKey" id="InputEventKey_x2isa"] +device = -1 +keycode = 46 +unicode = 46 + +[sub_resource type="InputEventKey" id="InputEventKey_sjxn8"] +device = -1 +keycode = 32 +unicode = 32 + +[sub_resource type="InputEventKey" id="InputEventKey_kjw4x"] +device = -1 +keycode = 79 +unicode = 111 + +[sub_resource type="InputEventKey" id="InputEventKey_61m8q"] +device = -1 +keycode = 44 +unicode = 44 + +[sub_resource type="InputEventKey" id="InputEventKey_tdkec"] +device = -1 +keycode = 65 +unicode = 97 + +[sub_resource type="InputEventKey" id="InputEventKey_flmuc"] +device = -1 +keycode = 69 +unicode = 101 + +[sub_resource type="InputEventKey" id="InputEventKey_8xqt1"] +device = -1 +keycode = 4194309 + +[sub_resource type="InputEventKey" id="InputEventKey_itl5r"] +device = -1 +keycode = 4194305 + +[sub_resource type="InputEventKey" id="InputEventKey_drnpm"] +device = -1 +keycode = 85 +unicode = 117 + +[sub_resource type="InputEventKey" id="InputEventKey_3m66q"] +device = -1 +keycode = 4194325 + +[sub_resource type="InputEventKey" id="InputEventKey_docp6"] +device = -1 +keycode = 4194306 + +[resource] +script = ExtResource("1_e3tjt") +title = "DVORAK" +move_forward = SubResource("InputEventKey_61m8q") +move_backward = SubResource("InputEventKey_kjw4x") +move_left = SubResource("InputEventKey_tdkec") +move_right = SubResource("InputEventKey_flmuc") +jump = SubResource("InputEventKey_sjxn8") +sprint = SubResource("InputEventKey_3m66q") +interact = SubResource("InputEventKey_x2isa") +open_text_chat = SubResource("InputEventKey_8xqt1") +ready = SubResource("InputEventKey_drnpm") +pause = SubResource("InputEventKey_itl5r") +equip_card_in_gauntlet = SubResource("InputEventKey_62tdh") +view_map = SubResource("InputEventKey_docp6") diff --git a/Resources/Keymaps/qwerty.tres b/Resources/Keymaps/qwerty.tres new file mode 100644 index 0000000..b65c85e --- /dev/null +++ b/Resources/Keymaps/qwerty.tres @@ -0,0 +1,75 @@ +[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=14 format=3 uid="uid://dml3iwhpttdat"] + +[ext_resource type="Script" path="res://Scripts/Resources/player_keymap.gd" id="1_6xs82"] + +[sub_resource type="InputEventKey" id="InputEventKey_g7iw8"] +device = -1 +keycode = 81 +unicode = 113 + +[sub_resource type="InputEventKey" id="InputEventKey_brup3"] +device = -1 +keycode = 69 +unicode = 101 + +[sub_resource type="InputEventKey" id="InputEventKey_p6g50"] +device = -1 +keycode = 32 +unicode = 32 + +[sub_resource type="InputEventKey" id="InputEventKey_cavx6"] +device = -1 +keycode = 83 +unicode = 115 + +[sub_resource type="InputEventKey" id="InputEventKey_e7m41"] +device = -1 +keycode = 87 +unicode = 119 + +[sub_resource type="InputEventKey" id="InputEventKey_5ut3l"] +device = -1 +keycode = 65 +unicode = 97 + +[sub_resource type="InputEventKey" id="InputEventKey_3uioy"] +device = -1 +keycode = 68 +unicode = 100 + +[sub_resource type="InputEventKey" id="InputEventKey_6mykw"] +device = -1 +keycode = 4194309 + +[sub_resource type="InputEventKey" id="InputEventKey_ujdbv"] +device = -1 +keycode = 4194305 + +[sub_resource type="InputEventKey" id="InputEventKey_kiqcj"] +device = -1 +keycode = 70 +unicode = 102 + +[sub_resource type="InputEventKey" id="InputEventKey_tmf7l"] +device = -1 +keycode = 4194325 + +[sub_resource type="InputEventKey" id="InputEventKey_a3okn"] +device = -1 +keycode = 4194306 + +[resource] +script = ExtResource("1_6xs82") +title = "QWERTY" +move_forward = SubResource("InputEventKey_e7m41") +move_backward = SubResource("InputEventKey_cavx6") +move_left = SubResource("InputEventKey_5ut3l") +move_right = SubResource("InputEventKey_3uioy") +jump = SubResource("InputEventKey_p6g50") +sprint = SubResource("InputEventKey_tmf7l") +interact = SubResource("InputEventKey_brup3") +open_text_chat = SubResource("InputEventKey_6mykw") +ready = SubResource("InputEventKey_kiqcj") +pause = SubResource("InputEventKey_ujdbv") +equip_card_in_gauntlet = SubResource("InputEventKey_g7iw8") +view_map = SubResource("InputEventKey_a3okn") diff --git a/Resources/Keymaps/workman.tres b/Resources/Keymaps/workman.tres new file mode 100644 index 0000000..ea29c8c --- /dev/null +++ b/Resources/Keymaps/workman.tres @@ -0,0 +1,75 @@ +[gd_resource type="Resource" script_class="PlayerKeymap" load_steps=14 format=3 uid="uid://g02ll7a7urwl"] + +[ext_resource type="Script" path="res://Scripts/Resources/player_keymap.gd" id="1_pf0gk"] + +[sub_resource type="InputEventKey" id="InputEventKey_ikcft"] +device = -1 +keycode = 81 +unicode = 113 + +[sub_resource type="InputEventKey" id="InputEventKey_bg51j"] +device = -1 +keycode = 82 +unicode = 114 + +[sub_resource type="InputEventKey" id="InputEventKey_2hgt5"] +device = -1 +keycode = 32 +unicode = 32 + +[sub_resource type="InputEventKey" id="InputEventKey_lc0ss"] +device = -1 +keycode = 83 +unicode = 115 + +[sub_resource type="InputEventKey" id="InputEventKey_lei27"] +device = -1 +keycode = 68 +unicode = 100 + +[sub_resource type="InputEventKey" id="InputEventKey_7juwk"] +device = -1 +keycode = 65 +unicode = 97 + +[sub_resource type="InputEventKey" id="InputEventKey_qfke7"] +device = -1 +keycode = 72 +unicode = 104 + +[sub_resource type="InputEventKey" id="InputEventKey_tbuvp"] +device = -1 +keycode = 4194309 + +[sub_resource type="InputEventKey" id="InputEventKey_tm5f1"] +device = -1 +keycode = 4194305 + +[sub_resource type="InputEventKey" id="InputEventKey_krad3"] +device = -1 +keycode = 84 +unicode = 116 + +[sub_resource type="InputEventKey" id="InputEventKey_bnnig"] +device = -1 +keycode = 4194325 + +[sub_resource type="InputEventKey" id="InputEventKey_tajfr"] +device = -1 +keycode = 4194306 + +[resource] +script = ExtResource("1_pf0gk") +title = "WORKMAN" +move_forward = SubResource("InputEventKey_lei27") +move_backward = SubResource("InputEventKey_lc0ss") +move_left = SubResource("InputEventKey_7juwk") +move_right = SubResource("InputEventKey_qfke7") +jump = SubResource("InputEventKey_2hgt5") +sprint = SubResource("InputEventKey_bnnig") +interact = SubResource("InputEventKey_bg51j") +open_text_chat = SubResource("InputEventKey_tbuvp") +ready = SubResource("InputEventKey_krad3") +pause = SubResource("InputEventKey_tm5f1") +equip_card_in_gauntlet = SubResource("InputEventKey_ikcft") +view_map = SubResource("InputEventKey_tajfr") diff --git a/Resources/StatusEffects/on_fire.tres b/Resources/StatusEffects/on_fire.tres new file mode 100644 index 0000000..87ed2e0 --- /dev/null +++ b/Resources/StatusEffects/on_fire.tres @@ -0,0 +1,12 @@ +[gd_resource type="Resource" script_class="StatusStats" load_steps=3 format=3 uid="uid://dbanx8taicddm"] + +[ext_resource type="Texture2D" uid="uid://c0h8yi1xe4ru5" path="res://Assets/Textures/on_fire_icon.png" id="1_ebohu"] +[ext_resource type="Script" path="res://Scripts/Resources/status_stats.gd" id="1_ogrf4"] + +[resource] +script = ExtResource("1_ogrf4") +unique = false +proc_frequency = 1.0 +duration = 3.0 +potency = 2.0 +icon = ExtResource("1_ebohu") diff --git a/Resources/StatusEffects/sticky.tres b/Resources/StatusEffects/sticky.tres new file mode 100644 index 0000000..cdec76f --- /dev/null +++ b/Resources/StatusEffects/sticky.tres @@ -0,0 +1,12 @@ +[gd_resource type="Resource" script_class="StatusStats" load_steps=3 format=3 uid="uid://d0643gfp52x3s"] + +[ext_resource type="Script" path="res://Scripts/Resources/status_stats.gd" id="1_57gd1"] +[ext_resource type="Texture2D" uid="uid://bpixdxdjnr5tw" path="res://Assets/Textures/glue_icon.png" id="1_b1meh"] + +[resource] +script = ExtResource("1_57gd1") +unique = true +proc_frequency = 0.0 +duration = 5.0 +potency = 0.3 +icon = ExtResource("1_b1meh") diff --git a/Resources/TurretStats/accelerator.tres b/Resources/TurretStats/accelerator.tres new file mode 100644 index 0000000..73af902 --- /dev/null +++ b/Resources/TurretStats/accelerator.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="TowerStats" load_steps=2 format=3 uid="uid://cc20tomywj0jm"] + +[ext_resource type="Script" path="res://Scripts/Resources/TowerStats.gd" id="1_jhska"] + +[resource] +script = ExtResource("1_jhska") +can_target = 1 +damage = 1.0 +fire_range = 15.0 +fire_rate = 4.0 diff --git a/Resources/TurretStats/assault.tres b/Resources/TurretStats/assault.tres new file mode 100644 index 0000000..bd2b538 --- /dev/null +++ b/Resources/TurretStats/assault.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="TowerStats" load_steps=2 format=3 uid="uid://cktq4o3yuxgsa"] + +[ext_resource type="Script" path="res://Scripts/Resources/TowerStats.gd" id="1_ujduk"] + +[resource] +script = ExtResource("1_ujduk") +can_target = 1 +damage = 1.0 +fire_range = 15.0 +fire_rate = 5.0 diff --git a/Resources/TurretStats/bomblauncher.tres b/Resources/TurretStats/bomblauncher.tres new file mode 100644 index 0000000..213f30f --- /dev/null +++ b/Resources/TurretStats/bomblauncher.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="TowerStats" load_steps=2 format=3 uid="uid://crmsk6lvp5i4e"] + +[ext_resource type="Script" path="res://Scripts/Resources/TowerStats.gd" id="1_2a4i2"] + +[resource] +script = ExtResource("1_2a4i2") +can_target = 1 +damage = 30.0 +fire_range = 10.0 +fire_rate = 0.2 diff --git a/Resources/TurretStats/flametower.tres b/Resources/TurretStats/flametower.tres new file mode 100644 index 0000000..526877b --- /dev/null +++ b/Resources/TurretStats/flametower.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="TowerStats" load_steps=2 format=3 uid="uid://5ywipj3632u8"] + +[ext_resource type="Script" path="res://Scripts/Resources/TowerStats.gd" id="1_h37p4"] + +[resource] +script = ExtResource("1_h37p4") +can_target = 1 +damage = 0.0 +fire_range = 4.0 +fire_rate = 1.0 diff --git a/Resources/TurretStats/glue.tres b/Resources/TurretStats/glue.tres new file mode 100644 index 0000000..ba435d6 --- /dev/null +++ b/Resources/TurretStats/glue.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="TowerStats" load_steps=2 format=3 uid="uid://dhcukj44khkd7"] + +[ext_resource type="Script" path="res://Scripts/Resources/TowerStats.gd" id="1_ntl50"] + +[resource] +script = ExtResource("1_ntl50") +can_target = 1 +damage = 0.0 +fire_range = 20.0 +fire_rate = 1.0 diff --git a/Resources/TurretStats/rocketlauncher.tres b/Resources/TurretStats/rocketlauncher.tres new file mode 100644 index 0000000..e1d1c24 --- /dev/null +++ b/Resources/TurretStats/rocketlauncher.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="TowerStats" load_steps=2 format=3 uid="uid://duofn25nuu84q"] + +[ext_resource type="Script" path="res://Scripts/Resources/TowerStats.gd" id="1_g11ny"] + +[resource] +script = ExtResource("1_g11ny") +can_target = 2 +damage = 6.0 +fire_range = 20.0 +fire_rate = 0.15 diff --git a/Resources/TurretStats/sniper.tres b/Resources/TurretStats/sniper.tres new file mode 100644 index 0000000..2cc921c --- /dev/null +++ b/Resources/TurretStats/sniper.tres @@ -0,0 +1,10 @@ +[gd_resource type="Resource" script_class="TowerStats" load_steps=2 format=3 uid="uid://ddw7pj1ckwmp8"] + +[ext_resource type="Script" path="res://Scripts/Resources/TowerStats.gd" id="1_xsq5r"] + +[resource] +script = ExtResource("1_xsq5r") +can_target = 3 +damage = 20.0 +fire_range = 20.0 +fire_rate = 0.6 diff --git a/Resources/WeaponStats/accelerator.tres b/Resources/WeaponStats/accelerator.tres new file mode 100644 index 0000000..4cb4e70 --- /dev/null +++ b/Resources/WeaponStats/accelerator.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://ouwge5etb4me"] + +[ext_resource type="Script" path="res://Scripts/Resources/WeaponStats.gd" id="1_lgw1t"] + +[resource] +script = ExtResource("1_lgw1t") +damage = 1 +fire_rate = 12.0 +fire_range = 25.0 diff --git a/Resources/WeaponStats/assault.tres b/Resources/WeaponStats/assault.tres new file mode 100644 index 0000000..fbb9b22 --- /dev/null +++ b/Resources/WeaponStats/assault.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://w15ojqyxd72q"] + +[ext_resource type="Script" path="res://Scripts/Resources/WeaponStats.gd" id="1_ttw2m"] + +[resource] +script = ExtResource("1_ttw2m") +damage = 3 +fire_rate = 10.0 +fire_range = 25.0 diff --git a/Resources/WeaponStats/bomblauncher.tres b/Resources/WeaponStats/bomblauncher.tres new file mode 100644 index 0000000..c86aec3 --- /dev/null +++ b/Resources/WeaponStats/bomblauncher.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://kbaiy5u6imtu"] + +[ext_resource type="Script" path="res://Scripts/Resources/WeaponStats.gd" id="1_xiddx"] + +[resource] +script = ExtResource("1_xiddx") +damage = 10 +fire_rate = 1.0 +fire_range = 6.0 diff --git a/Resources/WeaponStats/flamethrower.tres b/Resources/WeaponStats/flamethrower.tres new file mode 100644 index 0000000..5f00316 --- /dev/null +++ b/Resources/WeaponStats/flamethrower.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://c4ihsd13o1esd"] + +[ext_resource type="Script" path="res://Scripts/Resources/WeaponStats.gd" id="1_kt5ga"] + +[resource] +script = ExtResource("1_kt5ga") +damage = 0 +fire_rate = 0.0 +fire_range = 0.0 diff --git a/Resources/WeaponStats/glue.tres b/Resources/WeaponStats/glue.tres new file mode 100644 index 0000000..22d1e79 --- /dev/null +++ b/Resources/WeaponStats/glue.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://dnucn65m12dmq"] + +[ext_resource type="Script" path="res://Scripts/Resources/WeaponStats.gd" id="1_s171y"] + +[resource] +script = ExtResource("1_s171y") +damage = 0 +fire_rate = 2.0 +fire_range = 20.0 diff --git a/Resources/WeaponStats/rocketlauncher.tres b/Resources/WeaponStats/rocketlauncher.tres new file mode 100644 index 0000000..e6672c0 --- /dev/null +++ b/Resources/WeaponStats/rocketlauncher.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://dtfgyt85mp1ar"] + +[ext_resource type="Script" path="res://Scripts/Resources/WeaponStats.gd" id="1_sg2a6"] + +[resource] +script = ExtResource("1_sg2a6") +damage = 8 +fire_rate = 0.5 +fire_range = 40.0 diff --git a/Resources/WeaponStats/sniper.tres b/Resources/WeaponStats/sniper.tres new file mode 100644 index 0000000..9a29f13 --- /dev/null +++ b/Resources/WeaponStats/sniper.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://85iany3x0uv2"] + +[ext_resource type="Script" path="res://Scripts/Resources/WeaponStats.gd" id="1_idnx0"] + +[resource] +script = ExtResource("1_idnx0") +damage = 30 +fire_rate = 1.2 +fire_range = 80.0 diff --git a/Scenes/8_direction_sprite.tscn b/Scenes/8_direction_sprite.tscn new file mode 100644 index 0000000..7b9f564 --- /dev/null +++ b/Scenes/8_direction_sprite.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://ri8r03wqy80t"] + +[ext_resource type="Script" path="res://Scripts/eight_direction_sprite.gd" id="1_ipfb5"] +[ext_resource type="Texture2D" uid="uid://bf3gkg7f2oyg7" path="res://Assets/TextureAtlases/player.tres" id="2_kkoy2"] + +[node name="EightDirectionSprite" type="Sprite3D"] +billboard = 2 +texture_filter = 0 +texture = ExtResource("2_kkoy2") +script = ExtResource("1_ipfb5") diff --git a/Scenes/Menus/LoadoutEditor.tscn b/Scenes/Menus/LoadoutEditor.tscn new file mode 100644 index 0000000..31f0a41 --- /dev/null +++ b/Scenes/Menus/LoadoutEditor.tscn @@ -0,0 +1,32 @@ +[gd_scene load_steps=2 format=3 uid="uid://3kcl30sump8c"] + +[ext_resource type="Script" path="res://Scripts/loadout_editor.gd" id="1_y0cit"] + +[node name="Panel" type="Panel"] +anchors_preset = 4 +anchor_top = 0.5 +anchor_bottom = 0.5 +offset_left = 90.0 +offset_top = -142.5 +offset_right = 545.0 +offset_bottom = 142.5 +grow_vertical = 2 +script = ExtResource("1_y0cit") + +[node name="HBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Label" type="Label" parent="HBoxContainer"] +layout_mode = 2 +text = "Choose Character" diff --git a/Scenes/Menus/alert_popup.tscn b/Scenes/Menus/alert_popup.tscn new file mode 100644 index 0000000..6c01c05 --- /dev/null +++ b/Scenes/Menus/alert_popup.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://6a277g802os0"] + +[ext_resource type="Script" path="res://Scripts/alert_popup.gd" id="1_cac03"] + +[node name="Control" type="PanelContainer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_cac03") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer"] +layout_mode = 2 +text = "Unable to connect to server" + +[node name="Button" type="Button" parent="VBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 8 +text = "OK" + +[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_button_pressed"] diff --git a/Scenes/Menus/confirmation_popup.tscn b/Scenes/Menus/confirmation_popup.tscn new file mode 100644 index 0000000..8711ca4 --- /dev/null +++ b/Scenes/Menus/confirmation_popup.tscn @@ -0,0 +1,38 @@ +[gd_scene load_steps=2 format=3 uid="uid://f46qh73hrk4y"] + +[ext_resource type="Script" path="res://Scripts/confirmation_popup.gd" id="1_x7akt"] + +[node name="ConfirmationPopup" type="PanelContainer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -67.5 +offset_top = -30.5 +offset_right = 67.5 +offset_bottom = 30.5 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_x7akt") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer"] +layout_mode = 2 +text = "Some Text?" + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +layout_mode = 2 + +[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Confirm" + +[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Cancel" + +[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_cancel_pressed"] diff --git a/Scenes/Menus/lost_game_screen.tscn b/Scenes/Menus/lost_game_screen.tscn new file mode 100644 index 0000000..b456805 --- /dev/null +++ b/Scenes/Menus/lost_game_screen.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=2 format=3 uid="uid://dsydnch32qh2h"] + +[ext_resource type="Script" path="res://Scripts/lost_game_screen.gd" id="1_1pne8"] + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_1pne8") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.615686) + +[node name="Label" type="Label" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -33.5 +offset_top = 145.0 +offset_right = 33.5 +offset_bottom = 26.0 +grow_horizontal = 2 +text = "You Lost" + +[node name="RestartButton" type="Button" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -44.0 +offset_top = 270.0 +offset_right = -161.0 +offset_bottom = 31.0 +grow_horizontal = 2 +text = "Play Again" + +[node name="QuitButton" type="Button" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = 264.0 +offset_top = 270.0 +offset_right = 21.0 +offset_bottom = 31.0 +grow_horizontal = 2 +text = "Quit" + +[connection signal="pressed" from="RestartButton" to="." method="_on_restart_button_pressed"] +[connection signal="pressed" from="QuitButton" to="." method="_on_quit_button_pressed"] diff --git a/Scenes/Menus/main_menu.tscn b/Scenes/Menus/main_menu.tscn new file mode 100644 index 0000000..265dd6e --- /dev/null +++ b/Scenes/Menus/main_menu.tscn @@ -0,0 +1,104 @@ +[gd_scene load_steps=3 format=3 uid="uid://8yv7excojcg0"] + +[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_p1cib"] +[ext_resource type="Script" path="res://Scripts/main_menu.gd" id="2_ivytu"] + +[node name="MainMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_p1cib") +script = ExtResource("2_ivytu") + +[node name="Title" type="PanelContainer" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -559.5 +offset_top = 25.0 +offset_right = 559.5 +offset_bottom = 88.0 +grow_horizontal = 2 + +[node name="Label" type="Label" parent="Title"] +layout_mode = 2 +text = "MULTIPLAYER TOWER DEFENSE CARD GAME ROGUELIKE !!!" +horizontal_alignment = 1 + +[node name="MainControls" type="PanelContainer" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -71.0 +offset_top = -81.0 +offset_right = 71.0 +offset_bottom = 81.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="MainControls"] +layout_mode = 2 + +[node name="PlayButton" type="Button" parent="MainControls/VBoxContainer"] +layout_mode = 2 +text = "Play" + +[node name="MultiplayerButton" type="Button" parent="MainControls/VBoxContainer"] +layout_mode = 2 +text = "Multiplayer" + +[node name="OptionsButton" type="Button" parent="MainControls/VBoxContainer"] +layout_mode = 2 +text = "Options +" + +[node name="QuitButton" type="Button" parent="MainControls/VBoxContainer"] +layout_mode = 2 +text = "Quit +" + +[node name="ProfileEditor" type="PanelContainer" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_top = 1.0 +anchor_right = 0.5 +anchor_bottom = 1.0 +offset_left = -181.5 +offset_top = -140.0 +offset_right = 181.5 +offset_bottom = -30.0 +grow_horizontal = 2 +grow_vertical = 0 + +[node name="VBoxContainer" type="VBoxContainer" parent="ProfileEditor"] +layout_mode = 2 + +[node name="Label" type="Label" parent="ProfileEditor/VBoxContainer"] +layout_mode = 2 +text = "Display Name +" + +[node name="HBoxContainer" type="HBoxContainer" parent="ProfileEditor/VBoxContainer"] +layout_mode = 2 + +[node name="DisplayName" type="Label" parent="ProfileEditor/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Dummy Name" + +[node name="DisplayNameEdit" type="Button" parent="ProfileEditor/VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Change" + +[connection signal="pressed" from="MainControls/VBoxContainer/PlayButton" to="." method="_on_play_button_pressed"] +[connection signal="pressed" from="MainControls/VBoxContainer/MultiplayerButton" to="." method="_on_multiplayer_button_pressed"] +[connection signal="pressed" from="MainControls/VBoxContainer/OptionsButton" to="." method="_on_options_button_pressed"] +[connection signal="pressed" from="MainControls/VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"] +[connection signal="pressed" from="ProfileEditor/VBoxContainer/HBoxContainer/DisplayNameEdit" to="." method="_on_display_name_edit_pressed"] diff --git a/Scenes/Menus/multiplayer_lobby.tscn b/Scenes/Menus/multiplayer_lobby.tscn new file mode 100644 index 0000000..2f74cc8 --- /dev/null +++ b/Scenes/Menus/multiplayer_lobby.tscn @@ -0,0 +1,76 @@ +[gd_scene load_steps=7 format=3 uid="uid://cwvprrvk4l2k0"] + +[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_l1spu"] +[ext_resource type="Script" path="res://Scripts/multiplayer_lobby.gd" id="2_nb860"] +[ext_resource type="PackedScene" uid="uid://dpt3kpixawyby" path="res://Scenes/UI/scoreboard.tscn" id="3_f6bia"] +[ext_resource type="PackedScene" uid="uid://3kcl30sump8c" path="res://Scenes/Menus/LoadoutEditor.tscn" id="4_bmg55"] +[ext_resource type="PackedScene" uid="uid://bvfit0sy2tnw4" path="res://Scenes/Menus/server_form.tscn" id="5_bqbwv"] +[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="6_wtqwd"] + +[node name="multiplayer_lobby" type="Control" node_paths=PackedStringArray("server_form", "scoreboard", "loadout_editor", "chatbox")] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme = ExtResource("1_l1spu") +script = ExtResource("2_nb860") +server_form = NodePath("ServerForm") +scoreboard = NodePath("Scoreboard") +loadout_editor = NodePath("Panel") +chatbox = NodePath("Chatbox") + +[node name="ServerForm" parent="." instance=ExtResource("5_bqbwv")] +layout_mode = 1 +offset_left = -151.0 +offset_top = -112.0 +offset_right = 151.0 +offset_bottom = 112.0 + +[node name="Scoreboard" parent="." instance=ExtResource("3_f6bia")] +visible = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -472.0 +offset_right = -50.0 +grow_horizontal = 0 + +[node name="Panel" parent="." instance=ExtResource("4_bmg55")] +visible = false +layout_mode = 1 +anchors_preset = -1 +offset_left = 50.0 +offset_right = 455.0 + +[node name="ReadyButton" type="Button" parent="."] +visible = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = -81.0 +offset_top = 311.0 +offset_right = -240.0 +offset_bottom = 19.0 +grow_horizontal = 0 +grow_vertical = 2 +text = "Ready" + +[node name="Chatbox" parent="." instance=ExtResource("6_wtqwd")] +layout_mode = 1 +offset_bottom = -507.0 + +[connection signal="player_connected" from="." to="Scoreboard" method="add_player"] +[connection signal="player_disconnected" from="." to="Scoreboard" method="remove_player"] +[connection signal="connect_button_pressed" from="ServerForm" to="." method="connect_to_server"] +[connection signal="connect_button_pressed" from="ServerForm" to="ServerForm" method="set_visible" binds= [false]] +[connection signal="host_button_pressed" from="ServerForm" to="." method="create_server"] +[connection signal="host_button_pressed" from="ServerForm" to="ServerForm" method="set_visible" binds= [false]] +[connection signal="pressed" from="ReadyButton" to="." method="ready_player"] +[connection signal="pressed" from="ReadyButton" to="ReadyButton" method="set_visible" binds= [false]] diff --git a/Scenes/Menus/options_menu.tscn b/Scenes/Menus/options_menu.tscn new file mode 100644 index 0000000..839667c --- /dev/null +++ b/Scenes/Menus/options_menu.tscn @@ -0,0 +1,268 @@ +[gd_scene load_steps=3 format=3 uid="uid://clulh7v8c7h85"] + +[ext_resource type="Script" path="res://Scripts/options_menu.gd" id="1_bievw"] + +[sub_resource type="ImageTexture" id="ImageTexture_03x6q"] + +[node name="OptionsMenu" type="PanelContainer" node_paths=PackedStringArray("look_sens_slider", "look_sens_input", "toggle_sprint_checkbox", "vsync_dropdown", "aa_dropdown", "window_dropdown", "invert_lookY", "invert_lookX", "fov_input", "fov_slider")] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 30.0 +offset_top = 30.0 +offset_right = -30.0 +offset_bottom = -30.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_bievw") +look_sens_slider = NodePath("VBoxContainer/TabContainer/Gameplay/MouseSens/HBoxContainer/HSlider") +look_sens_input = NodePath("VBoxContainer/TabContainer/Gameplay/MouseSens/HBoxContainer/SpinBox") +toggle_sprint_checkbox = NodePath("VBoxContainer/TabContainer/Gameplay/ToggleSprint/CenterContainer/CheckButton") +vsync_dropdown = NodePath("VBoxContainer/TabContainer/Graphics/VSync/OptionButton") +aa_dropdown = NodePath("VBoxContainer/TabContainer/Graphics/AntiAliasing/OptionButton") +window_dropdown = NodePath("VBoxContainer/TabContainer/Graphics/Windowed/OptionButton") +invert_lookY = NodePath("VBoxContainer/TabContainer/Gameplay/InvertMouseY/CenterContainer/CheckButton") +invert_lookX = NodePath("VBoxContainer/TabContainer/Gameplay/InvertMouseX/CenterContainer/CheckButton") +fov_input = NodePath("VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer/SpinBox") +fov_slider = NodePath("VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer/HSlider") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 + +[node name="TabContainer" type="TabContainer" parent="VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="Gameplay" type="VBoxContainer" parent="VBoxContainer/TabContainer"] +layout_mode = 2 + +[node name="MouseSens" type="HBoxContainer" parent="VBoxContainer/TabContainer/Gameplay"] +layout_mode = 2 +alignment = 1 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Gameplay/MouseSens"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Look Sensitivity" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/TabContainer/Gameplay/MouseSens"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="SpinBox" type="SpinBox" parent="VBoxContainer/TabContainer/Gameplay/MouseSens/HBoxContainer"] +layout_mode = 2 +theme_override_icons/updown = SubResource("ImageTexture_03x6q") +step = 0.01 +alignment = 1 +update_on_text_changed = true + +[node name="HSlider" type="HSlider" parent="VBoxContainer/TabContainer/Gameplay/MouseSens/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +step = 0.01 +scrollable = false + +[node name="ToggleSprint" type="HBoxContainer" parent="VBoxContainer/TabContainer/Gameplay"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Gameplay/ToggleSprint"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Toggle Sprint" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CenterContainer" type="CenterContainer" parent="VBoxContainer/TabContainer/Gameplay/ToggleSprint"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="CheckButton" type="CheckButton" parent="VBoxContainer/TabContainer/Gameplay/ToggleSprint/CenterContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="InvertMouseY" type="HBoxContainer" parent="VBoxContainer/TabContainer/Gameplay"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Gameplay/InvertMouseY"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Invert Look Y" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CenterContainer" type="CenterContainer" parent="VBoxContainer/TabContainer/Gameplay/InvertMouseY"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="CheckButton" type="CheckButton" parent="VBoxContainer/TabContainer/Gameplay/InvertMouseY/CenterContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="InvertMouseX" type="HBoxContainer" parent="VBoxContainer/TabContainer/Gameplay"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Gameplay/InvertMouseX"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Invert Look X" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CenterContainer" type="CenterContainer" parent="VBoxContainer/TabContainer/Gameplay/InvertMouseX"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="CheckButton" type="CheckButton" parent="VBoxContainer/TabContainer/Gameplay/InvertMouseX/CenterContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="Graphics" type="VBoxContainer" parent="VBoxContainer/TabContainer"] +visible = false +layout_mode = 2 + +[node name="FOV" type="HBoxContainer" parent="VBoxContainer/TabContainer/Graphics"] +layout_mode = 2 +alignment = 1 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Graphics/FOV"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Field Of View" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/TabContainer/Graphics/FOV"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="SpinBox" type="SpinBox" parent="VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer"] +layout_mode = 2 +theme_override_icons/updown = SubResource("ImageTexture_03x6q") +min_value = 40.0 +max_value = 160.0 +value = 100.0 +allow_greater = true +allow_lesser = true +alignment = 1 +update_on_text_changed = true + +[node name="HSlider" type="HSlider" parent="VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +min_value = 40.0 +max_value = 160.0 +value = 100.0 +scrollable = false + +[node name="VSync" type="HBoxContainer" parent="VBoxContainer/TabContainer/Graphics"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Graphics/VSync"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "V-Sync" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="OptionButton" type="OptionButton" parent="VBoxContainer/TabContainer/Graphics/VSync"] +layout_mode = 2 +size_flags_horizontal = 3 +item_count = 4 +selected = 1 +popup/item_0/text = "Off" +popup/item_0/id = 0 +popup/item_1/text = "On" +popup/item_1/id = 1 +popup/item_2/text = "Adaptive" +popup/item_2/id = 2 +popup/item_3/text = "Triple Buffered" +popup/item_3/id = 3 + +[node name="AntiAliasing" type="HBoxContainer" parent="VBoxContainer/TabContainer/Graphics"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Graphics/AntiAliasing"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Anti-Aliasing +" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="OptionButton" type="OptionButton" parent="VBoxContainer/TabContainer/Graphics/AntiAliasing"] +layout_mode = 2 +size_flags_horizontal = 3 +item_count = 3 +selected = 0 +popup/item_0/text = "Off" +popup/item_0/id = 0 +popup/item_1/text = "FXAA" +popup/item_1/id = 1 +popup/item_2/text = "TAA" +popup/item_2/id = 2 + +[node name="Windowed" type="HBoxContainer" parent="VBoxContainer/TabContainer/Graphics"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Graphics/Windowed"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Window Mode" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="OptionButton" type="OptionButton" parent="VBoxContainer/TabContainer/Graphics/Windowed"] +layout_mode = 2 +size_flags_horizontal = 3 +item_count = 3 +selected = 0 +popup/item_0/text = "Windowed" +popup/item_0/id = 0 +popup/item_1/text = "Borderless Windowed" +popup/item_1/id = 1 +popup/item_2/text = "Fullscreen" +popup/item_2/id = 2 + +[node name="Keybinds" type="VBoxContainer" parent="VBoxContainer/TabContainer"] +visible = false +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/TabContainer/Keybinds"] +layout_mode = 2 + +[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer/TabContainer/Keybinds"] +layout_mode = 2 +size_flags_vertical = 3 + +[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/TabContainer/Keybinds/ScrollContainer"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="Audio" type="VBoxContainer" parent="VBoxContainer/TabContainer"] +visible = false +layout_mode = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +layout_mode = 2 +alignment = 2 + +[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Discard" + +[node name="Confirm" type="Button" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Confirm" + +[connection signal="value_changed" from="VBoxContainer/TabContainer/Gameplay/MouseSens/HBoxContainer/SpinBox" to="." method="_on_mouse_sens_spin_box_value_changed"] +[connection signal="value_changed" from="VBoxContainer/TabContainer/Gameplay/MouseSens/HBoxContainer/HSlider" to="." method="_on_mouse_sens_h_slider_value_changed"] +[connection signal="value_changed" from="VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer/SpinBox" to="." method="_on_fov_spin_box_value_changed"] +[connection signal="value_changed" from="VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer/HSlider" to="." method="_on_fov_h_slider_value_changed"] +[connection signal="item_selected" from="VBoxContainer/TabContainer/Graphics/VSync/OptionButton" to="." method="_on_vsync_option_button_item_selected"] +[connection signal="item_selected" from="VBoxContainer/TabContainer/Graphics/AntiAliasing/OptionButton" to="." method="_on_AA_option_button_item_selected"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_cancel_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/Confirm" to="." method="_on_confirm_pressed"] diff --git a/Scenes/Menus/pause_menu.tscn b/Scenes/Menus/pause_menu.tscn new file mode 100644 index 0000000..defcd5c --- /dev/null +++ b/Scenes/Menus/pause_menu.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=3 format=3 uid="uid://buvgdem68wtev"] + +[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_gaupv"] +[ext_resource type="Script" path="res://Scripts/pause_menu.gd" id="2_4pn2l"] + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_gaupv") +script = ExtResource("2_4pn2l") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.278431, 0.278431, 0.278431, 0.545098) + +[node name="PanelContainer" type="PanelContainer" parent="."] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -20.0 +offset_top = -20.0 +offset_right = 20.0 +offset_bottom = 20.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"] +layout_mode = 2 + +[node name="Resume" type="Button" parent="PanelContainer/VBoxContainer"] +layout_mode = 2 +text = "Resume" + +[node name="Options" type="Button" parent="PanelContainer/VBoxContainer"] +layout_mode = 2 +text = "Options" + +[node name="QuitToMainMenu" type="Button" parent="PanelContainer/VBoxContainer"] +layout_mode = 2 +text = "Quit to main menu" + +[node name="QuitToDesktop" type="Button" parent="PanelContainer/VBoxContainer"] +layout_mode = 2 +text = "Quit to desktop" + +[connection signal="pressed" from="PanelContainer/VBoxContainer/Resume" to="." method="_on_resume_pressed"] +[connection signal="pressed" from="PanelContainer/VBoxContainer/Options" to="." method="_on_options_pressed"] +[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToMainMenu" to="." method="_on_quit_to_main_menu_pressed"] +[connection signal="pressed" from="PanelContainer/VBoxContainer/QuitToDesktop" to="." method="_on_quit_to_desktop_pressed"] diff --git a/Scenes/Menus/server_form.tscn b/Scenes/Menus/server_form.tscn new file mode 100644 index 0000000..9262d7f --- /dev/null +++ b/Scenes/Menus/server_form.tscn @@ -0,0 +1,56 @@ +[gd_scene load_steps=2 format=3 uid="uid://bvfit0sy2tnw4"] + +[ext_resource type="Script" path="res://Scripts/server_form.gd" id="1_43oaq"] + +[node name="ServerForm" type="PanelContainer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -81.0 +offset_top = -85.5 +offset_right = 81.0 +offset_bottom = 85.5 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_43oaq") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 +alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +text = "Server IP:" + +[node name="ServerIP" type="LineEdit" parent="VBoxContainer/HBoxContainer"] +layout_mode = 2 +size_flags_horizontal = 3 +placeholder_text = "localhost" + +[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer2"] +layout_mode = 2 +text = "Server Port:" + +[node name="ServerPort" type="LineEdit" parent="VBoxContainer/HBoxContainer2"] +layout_mode = 2 +size_flags_horizontal = 3 +placeholder_text = "default" + +[node name="Connect" type="Button" parent="VBoxContainer"] +layout_mode = 2 +text = "Connect" + +[node name="Host" type="Button" parent="VBoxContainer"] +layout_mode = 2 +text = "Host" + +[connection signal="pressed" from="VBoxContainer/Connect" to="." method="_on_connect_pressed"] +[connection signal="pressed" from="VBoxContainer/Host" to="." method="_on_host_pressed"] diff --git a/Scenes/Menus/singleplayer_lobby.tscn b/Scenes/Menus/singleplayer_lobby.tscn new file mode 100644 index 0000000..a79f77e --- /dev/null +++ b/Scenes/Menus/singleplayer_lobby.tscn @@ -0,0 +1,62 @@ +[gd_scene load_steps=6 format=3 uid="uid://176c6fuhg5ic"] + +[ext_resource type="Theme" uid="uid://b6a0ip4p72tgx" path="res://new_theme.tres" id="1_2aur6"] +[ext_resource type="PackedScene" uid="uid://dpt3kpixawyby" path="res://Scenes/UI/scoreboard.tscn" id="1_423py"] +[ext_resource type="Script" path="res://Scripts/singleplayer_lobby.gd" id="1_nd17k"] +[ext_resource type="PackedScene" uid="uid://3kcl30sump8c" path="res://Scenes/Menus/LoadoutEditor.tscn" id="2_wpyw5"] +[ext_resource type="PackedScene" uid="uid://ddmg342ff2qaq" path="res://Scenes/UI/chatbox.tscn" id="3_l8xy3"] + +[node name="singleplayer_lobby" type="Control" node_paths=PackedStringArray("scoreboard", "loadout_editor", "chatbox")] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +theme = ExtResource("1_2aur6") +script = ExtResource("1_nd17k") +scoreboard = NodePath("Scoreboard") +loadout_editor = NodePath("Panel") +chatbox = NodePath("Chatbox") + +[node name="Scoreboard" parent="." instance=ExtResource("1_423py")] +visible = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -472.0 +offset_right = -50.0 +grow_horizontal = 0 + +[node name="Panel" parent="." instance=ExtResource("2_wpyw5")] +visible = false +layout_mode = 1 +anchors_preset = -1 +offset_left = 50.0 +offset_right = 455.0 + +[node name="ReadyButton" type="Button" parent="."] +visible = false +layout_mode = 1 +anchors_preset = -1 +anchor_left = 1.0 +anchor_top = 0.5 +anchor_right = 1.0 +anchor_bottom = 0.5 +offset_left = -81.0 +offset_top = 311.0 +offset_right = -240.0 +offset_bottom = 19.0 +grow_horizontal = 0 +grow_vertical = 2 +text = "Ready" + +[node name="Chatbox" parent="." instance=ExtResource("3_l8xy3")] +visible = false +layout_mode = 1 +offset_bottom = -507.0 + +[connection signal="pressed" from="ReadyButton" to="Scoreboard" method="set_player_ready_state" binds= [1, true]] +[connection signal="pressed" from="ReadyButton" to="ReadyButton" method="set_visible" binds= [false]] diff --git a/Scenes/Menus/text_input_popup.tscn b/Scenes/Menus/text_input_popup.tscn new file mode 100644 index 0000000..320aa34 --- /dev/null +++ b/Scenes/Menus/text_input_popup.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=2 format=3 uid="uid://dccsyymk4uko6"] + +[ext_resource type="Script" path="res://Scripts/text_input_popup.gd" id="1_ve6eb"] + +[node name="TextInputPopup" type="PanelContainer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -90.0 +offset_top = -35.0 +offset_right = 90.0 +offset_bottom = 35.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_ve6eb") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 + +[node name="LineEdit" type="LineEdit" parent="VBoxContainer"] +layout_mode = 2 +placeholder_text = "Dummy Text" + +[node name="Button" type="Button" parent="VBoxContainer"] +layout_mode = 2 +text = "Confirm +" + +[connection signal="pressed" from="VBoxContainer/Button" to="." method="_on_button_pressed"] diff --git a/Scenes/Menus/won_game_screen.tscn b/Scenes/Menus/won_game_screen.tscn new file mode 100644 index 0000000..d7641e2 --- /dev/null +++ b/Scenes/Menus/won_game_screen.tscn @@ -0,0 +1,60 @@ +[gd_scene load_steps=2 format=3 uid="uid://ce0m8vbjbng6o"] + +[ext_resource type="Script" path="res://Scripts/won_game_screen.gd" id="1_oa7nq"] + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_oa7nq") + +[node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0, 0, 0, 0.486275) + +[node name="Label" type="Label" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -20.0 +offset_top = 260.0 +offset_right = 20.0 +offset_bottom = 23.0 +grow_horizontal = 2 +text = "You WIN :3" + +[node name="PlayButton" type="Button" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -52.5 +offset_top = 300.0 +offset_right = -173.0 +offset_bottom = 31.0 +grow_horizontal = 2 +text = "play again :3" + +[node name="QuitButton" type="Button" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = 348.0 +offset_top = 300.0 +offset_right = -173.0 +offset_bottom = 31.0 +grow_horizontal = 2 +text = "quit to main menu :<" + +[connection signal="pressed" from="PlayButton" to="." method="_on_play_button_pressed"] +[connection signal="pressed" from="QuitButton" to="." method="_on_quit_button_pressed"] diff --git a/Scenes/UI/card_hand.tscn b/Scenes/UI/card_hand.tscn new file mode 100644 index 0000000..0eb253b --- /dev/null +++ b/Scenes/UI/card_hand.tscn @@ -0,0 +1,93 @@ +[gd_scene load_steps=4 format=3 uid="uid://dixtx38u4jhd7"] + +[ext_resource type="Script" path="res://Scripts/card_hand.gd" id="1_2cfmh"] +[ext_resource type="Texture2D" uid="uid://dlqnhs8or4ik2" path="res://Assets/Textures/cardhand.png" id="1_d5oo3"] +[ext_resource type="Texture2D" uid="uid://buf8t5gc7iw3a" path="res://Assets/TextureAtlases/rarityborders.tres" id="3_pclfx"] + +[node name="Node2D" type="Node2D" node_paths=PackedStringArray("rarity_sprite", "title_text", "damage_text_text", "damage_text", "fire_rate_text_text", "fire_rate_text", "range_text_text", "range_text")] +script = ExtResource("1_2cfmh") +rarity_sprite = NodePath("Sprite2D2") +title_text = NodePath("Title") +damage_text_text = NodePath("DamageText") +damage_text = NodePath("Damage") +fire_rate_text_text = NodePath("FireRateText") +fire_rate_text = NodePath("FireRate") +range_text_text = NodePath("RangeText") +range_text = NodePath("Range") + +[node name="Sprite2D" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(96, 96) +scale = Vector2(3, 3) +texture = ExtResource("1_d5oo3") + +[node name="Sprite2D2" type="Sprite2D" parent="."] +texture_filter = 1 +position = Vector2(96, 96) +scale = Vector2(3, 3) +texture = ExtResource("3_pclfx") +region_enabled = true +region_rect = Rect2(0, 0, 64, 64) + +[node name="Title" type="Label" parent="."] +offset_left = 48.0 +offset_top = 20.0 +offset_right = 150.0 +offset_bottom = 46.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "spider queen" +horizontal_alignment = 1 + +[node name="DamageText" type="Label" parent="."] +offset_left = 30.0 +offset_top = 65.0 +offset_right = 132.0 +offset_bottom = 91.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "Damage: " +horizontal_alignment = 1 + +[node name="Damage" type="Label" parent="."] +offset_left = 78.0 +offset_top = 65.0 +offset_right = 180.0 +offset_bottom = 91.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "45" +horizontal_alignment = 1 + +[node name="FireRateText" type="Label" parent="."] +offset_left = 31.0 +offset_top = 89.0 +offset_right = 133.0 +offset_bottom = 115.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "Fire Rate: " +horizontal_alignment = 1 + +[node name="FireRate" type="Label" parent="."] +offset_left = 77.0 +offset_top = 90.0 +offset_right = 179.0 +offset_bottom = 116.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "3" +horizontal_alignment = 1 + +[node name="RangeText" type="Label" parent="."] +offset_left = 44.0 +offset_top = 111.0 +offset_right = 146.0 +offset_bottom = 137.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "Range: " +horizontal_alignment = 1 + +[node name="Range" type="Label" parent="."] +offset_left = 87.0 +offset_top = 111.0 +offset_right = 189.0 +offset_bottom = 137.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "55" +horizontal_alignment = 1 diff --git a/Scenes/UI/chatbox.tscn b/Scenes/UI/chatbox.tscn new file mode 100644 index 0000000..a1b1ee7 --- /dev/null +++ b/Scenes/UI/chatbox.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=2 format=3 uid="uid://ddmg342ff2qaq"] + +[ext_resource type="Script" path="res://Scripts/chatbox.gd" id="1_k3g22"] + +[node name="Chatbox" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +mouse_filter = 2 +script = ExtResource("1_k3g22") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = -1 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 15.0 +offset_top = -210.0 +offset_right = 350.0 +offset_bottom = -10.0 +grow_vertical = 0 +mouse_filter = 2 +alignment = 2 + +[node name="RichTextLabel" type="RichTextLabel" parent="VBoxContainer"] +layout_mode = 2 +size_flags_vertical = 3 +mouse_filter = 2 +scroll_following = true + +[node name="LineEdit" type="LineEdit" parent="VBoxContainer"] +visible = false +layout_mode = 2 +mouse_filter = 2 +context_menu_enabled = false +selecting_enabled = false diff --git a/Scenes/UI/lifebar_segment.tscn b/Scenes/UI/lifebar_segment.tscn new file mode 100644 index 0000000..947060c --- /dev/null +++ b/Scenes/UI/lifebar_segment.tscn @@ -0,0 +1,558 @@ +[gd_scene load_steps=11 format=3 uid="uid://dko38egcaxubd"] + +[ext_resource type="Script" path="res://Scripts/lifebar_segment.gd" id="1_dvlcq"] +[ext_resource type="Texture2D" uid="uid://0ey8r48lgjw1" path="res://Assets/Textures/lifebar_pip.png" id="1_pianw"] + +[sub_resource type="Animation" id="Animation_i18y2"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureRect6:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 4)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect6:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TextureRect6:rotation") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("TextureRect4:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, 0)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("TextureRect4:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/5/type = "value" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("TextureRect4:modulate") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("TextureRect5:position") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, 4)] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("TextureRect5:rotation") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/8/type = "value" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("TextureRect5:modulate") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/9/type = "value" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("TextureRect2:position") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(0, -4)] +} +tracks/10/type = "value" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("TextureRect2:rotation") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/11/type = "value" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("TextureRect2:modulate") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/12/type = "value" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("TextureRect3:position") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, 0)] +} +tracks/13/type = "value" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("TextureRect3:rotation") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/14/type = "value" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("TextureRect3:modulate") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/15/type = "value" +tracks/15/imported = false +tracks/15/enabled = true +tracks/15/path = NodePath("TextureRect:position") +tracks/15/interp = 1 +tracks/15/loop_wrap = true +tracks/15/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector2(-4, -4)] +} +tracks/16/type = "value" +tracks/16/imported = false +tracks/16/enabled = true +tracks/16/path = NodePath("TextureRect:rotation") +tracks/16/interp = 1 +tracks/16/loop_wrap = true +tracks/16/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/17/type = "value" +tracks/17/imported = false +tracks/17/enabled = true +tracks/17/path = NodePath("TextureRect:modulate") +tracks/17/interp = 1 +tracks/17/loop_wrap = true +tracks/17/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_a6tv4"] +resource_name = "lose1" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureRect6:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(0, 4), Vector2(4.76837e-07, 9)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect6:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.567662] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TextureRect6:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_t2ym0"] +resource_name = "lose2" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureRect4:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(0, 0), Vector2(2, 6)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect4:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.933911] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TextureRect4:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_ueyfw"] +resource_name = "lose3" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureRect5:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(-4, 4), Vector2(-3, 9)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect5:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -1.1286] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TextureRect5:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_r4h4h"] +resource_name = "lose4" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureRect2:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(0, -4), Vector2(4, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect2:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 0.582677] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TextureRect2:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_defuy"] +resource_name = "lose5" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureRect3:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(-4, 0), Vector2(-1, 4)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect3:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -0.909425] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TextureRect3:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="Animation" id="Animation_rctjq"] +resource_name = "lose6" +length = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("TextureRect:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector2(-4, -4), Vector2(1, 2)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("TextureRect:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -1.01031] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("TextureRect:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_1s8yp"] +_data = { +"RESET": SubResource("Animation_i18y2"), +"lose1": SubResource("Animation_a6tv4"), +"lose2": SubResource("Animation_t2ym0"), +"lose3": SubResource("Animation_ueyfw"), +"lose4": SubResource("Animation_r4h4h"), +"lose5": SubResource("Animation_defuy"), +"lose6": SubResource("Animation_rctjq") +} + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1_dvlcq") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_1s8yp") +} + +[node name="AnimationPlayer2" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_1s8yp") +} + +[node name="AnimationPlayer3" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_1s8yp") +} + +[node name="AnimationPlayer4" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_1s8yp") +} + +[node name="AnimationPlayer5" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_1s8yp") +} + +[node name="AnimationPlayer6" type="AnimationPlayer" parent="."] +libraries = { +"": SubResource("AnimationLibrary_1s8yp") +} + +[node name="TextureRect" type="TextureRect" parent="."] +texture_filter = 1 +layout_mode = 0 +offset_left = -4.0 +offset_top = -4.0 +offset_right = -1.0 +offset_bottom = -1.0 +texture = ExtResource("1_pianw") + +[node name="TextureRect2" type="TextureRect" parent="."] +texture_filter = 1 +layout_mode = 0 +offset_top = -4.0 +offset_right = 3.0 +offset_bottom = -1.0 +texture = ExtResource("1_pianw") + +[node name="TextureRect3" type="TextureRect" parent="."] +texture_filter = 1 +layout_mode = 0 +offset_left = -4.0 +offset_right = -1.0 +offset_bottom = 3.0 +texture = ExtResource("1_pianw") + +[node name="TextureRect4" type="TextureRect" parent="."] +texture_filter = 1 +layout_mode = 0 +offset_right = 3.0 +offset_bottom = 3.0 +texture = ExtResource("1_pianw") + +[node name="TextureRect5" type="TextureRect" parent="."] +texture_filter = 1 +layout_mode = 0 +offset_left = -4.0 +offset_top = 4.0 +offset_right = -1.0 +offset_bottom = 7.0 +texture = ExtResource("1_pianw") + +[node name="TextureRect6" type="TextureRect" parent="."] +texture_filter = 1 +layout_mode = 0 +offset_top = 4.0 +offset_right = 3.0 +offset_bottom = 7.00004 +texture = ExtResource("1_pianw") diff --git a/Scenes/UI/lives_bar.tscn b/Scenes/UI/lives_bar.tscn new file mode 100644 index 0000000..1db9219 --- /dev/null +++ b/Scenes/UI/lives_bar.tscn @@ -0,0 +1,137 @@ +[gd_scene load_steps=4 format=3 uid="uid://24x18qxqhy0i"] + +[ext_resource type="Texture2D" uid="uid://dvy2lvtotaxb3" path="res://Assets/Textures/lifebar_bg.png" id="1_x27cx"] +[ext_resource type="Script" path="res://Scripts/lives_bar.gd" id="2_lqe7s"] +[ext_resource type="PackedScene" uid="uid://dko38egcaxubd" path="res://Scenes/UI/lifebar_segment.tscn" id="3_6hp86"] + +[node name="LivesBar" type="TextureRect" node_paths=PackedStringArray("segments")] +texture_filter = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("1_x27cx") +stretch_mode = 2 +script = ExtResource("2_lqe7s") +segments = [NodePath("Control"), NodePath("Control2"), NodePath("Control3"), NodePath("Control4"), NodePath("Control5"), NodePath("Control6"), NodePath("Control7"), NodePath("Control8"), NodePath("Control9"), NodePath("Control10"), NodePath("Control11"), NodePath("Control12"), NodePath("Control13"), NodePath("Control14"), NodePath("Control15"), NodePath("Control16"), NodePath("Control17"), NodePath("Control18"), NodePath("Control19"), NodePath("Control20")] + +[node name="Control" parent="." instance=ExtResource("3_6hp86")] +offset_left = 28.0 +offset_top = 10.0 +offset_right = 28.0 +offset_bottom = 10.0 + +[node name="Control2" parent="." instance=ExtResource("3_6hp86")] +offset_left = 37.0 +offset_top = 10.0 +offset_right = 37.0 +offset_bottom = 10.0 + +[node name="Control3" parent="." instance=ExtResource("3_6hp86")] +offset_left = 46.0 +offset_top = 10.0 +offset_right = 46.0 +offset_bottom = 10.0 + +[node name="Control4" parent="." instance=ExtResource("3_6hp86")] +offset_left = 55.0 +offset_top = 10.0 +offset_right = 55.0 +offset_bottom = 10.0 + +[node name="Control5" parent="." instance=ExtResource("3_6hp86")] +offset_left = 64.0 +offset_top = 10.0 +offset_right = 64.0 +offset_bottom = 10.0 + +[node name="Control6" parent="." instance=ExtResource("3_6hp86")] +offset_left = 73.0 +offset_top = 10.0 +offset_right = 73.0 +offset_bottom = 10.0 + +[node name="Control7" parent="." instance=ExtResource("3_6hp86")] +offset_left = 82.0 +offset_top = 10.0 +offset_right = 82.0 +offset_bottom = 10.0 + +[node name="Control8" parent="." instance=ExtResource("3_6hp86")] +offset_left = 91.0 +offset_top = 10.0 +offset_right = 91.0 +offset_bottom = 10.0 + +[node name="Control9" parent="." instance=ExtResource("3_6hp86")] +offset_left = 100.0 +offset_top = 10.0 +offset_right = 100.0 +offset_bottom = 10.0 + +[node name="Control10" parent="." instance=ExtResource("3_6hp86")] +offset_left = 109.0 +offset_top = 10.0 +offset_right = 109.0 +offset_bottom = 10.0 + +[node name="Control11" parent="." instance=ExtResource("3_6hp86")] +offset_left = 118.0 +offset_top = 10.0 +offset_right = 118.0 +offset_bottom = 10.0 + +[node name="Control12" parent="." instance=ExtResource("3_6hp86")] +offset_left = 127.0 +offset_top = 10.0 +offset_right = 127.0 +offset_bottom = 10.0 + +[node name="Control13" parent="." instance=ExtResource("3_6hp86")] +offset_left = 136.0 +offset_top = 10.0 +offset_right = 136.0 +offset_bottom = 10.0 + +[node name="Control14" parent="." instance=ExtResource("3_6hp86")] +offset_left = 145.0 +offset_top = 10.0 +offset_right = 145.0 +offset_bottom = 10.0 + +[node name="Control15" parent="." instance=ExtResource("3_6hp86")] +offset_left = 154.0 +offset_top = 10.0 +offset_right = 154.0 +offset_bottom = 10.0 + +[node name="Control16" parent="." instance=ExtResource("3_6hp86")] +offset_left = 163.0 +offset_top = 10.0 +offset_right = 163.0 +offset_bottom = 10.0 + +[node name="Control17" parent="." instance=ExtResource("3_6hp86")] +offset_left = 172.0 +offset_top = 10.0 +offset_right = 172.0 +offset_bottom = 10.0 + +[node name="Control18" parent="." instance=ExtResource("3_6hp86")] +offset_left = 181.0 +offset_top = 10.0 +offset_right = 181.0 +offset_bottom = 10.0 + +[node name="Control19" parent="." instance=ExtResource("3_6hp86")] +offset_left = 190.0 +offset_top = 10.0 +offset_right = 190.0 +offset_bottom = 10.0 + +[node name="Control20" parent="." instance=ExtResource("3_6hp86")] +offset_left = 199.0 +offset_top = 10.0 +offset_right = 199.0 +offset_bottom = 10.0 diff --git a/Scenes/UI/scoreboard.tscn b/Scenes/UI/scoreboard.tscn new file mode 100644 index 0000000..06300e6 --- /dev/null +++ b/Scenes/UI/scoreboard.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=3 format=3 uid="uid://dpt3kpixawyby"] + +[ext_resource type="Script" path="res://Scripts/scoreboard.gd" id="1_b5vdp"] +[ext_resource type="PackedScene" uid="uid://bhri8mqjbme2t" path="res://Scenes/UI/scoreboard_entry.tscn" id="2_uer0b"] + +[node name="Scoreboard" type="PanelContainer"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -157.5 +offset_top = -125.0 +offset_right = 157.5 +offset_bottom = 125.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_b5vdp") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 2 +alignment = 1 + +[node name="DummyEntry1" parent="VBoxContainer" instance=ExtResource("2_uer0b")] +layout_mode = 2 + +[node name="DummyEntry2" parent="VBoxContainer" instance=ExtResource("2_uer0b")] +layout_mode = 2 + +[node name="DummyEntry3" parent="VBoxContainer" instance=ExtResource("2_uer0b")] +layout_mode = 2 diff --git a/Scenes/UI/scoreboard_entry.tscn b/Scenes/UI/scoreboard_entry.tscn new file mode 100644 index 0000000..5235c6b --- /dev/null +++ b/Scenes/UI/scoreboard_entry.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=4 format=3 uid="uid://bhri8mqjbme2t"] + +[ext_resource type="Script" path="res://Scripts/scoreboard_entry.gd" id="1_5xryr"] +[ext_resource type="Texture2D" uid="uid://m4ehy5bahsup" path="res://Assets/Textures/ready.png" id="2_yxtr2"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_qhkn8"] +resource_local_to_scene = true +atlas = ExtResource("2_yxtr2") +region = Rect2(0, 0, 32, 32) + +[node name="PlayerListEntry" type="HBoxContainer"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_5xryr") + +[node name="DisplayName" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Dummy Player" +horizontal_alignment = 1 + +[node name="CharacterName" type="Label" parent="."] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Character" +horizontal_alignment = 1 + +[node name="TextureRect" type="TextureRect" parent="."] +layout_mode = 2 +size_flags_horizontal = 8 +texture = SubResource("AtlasTexture_qhkn8") +stretch_mode = 3 diff --git a/Scenes/card_constructor.tscn b/Scenes/card_constructor.tscn new file mode 100644 index 0000000..d125f5d --- /dev/null +++ b/Scenes/card_constructor.tscn @@ -0,0 +1,133 @@ +[gd_scene load_steps=12 format=3 uid="uid://1b2ikdanl66b"] + +[ext_resource type="Script" path="res://Scripts/card_printer.gd" id="1_7rhtj"] +[ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="2_7ouw1"] +[ext_resource type="PackedScene" uid="uid://dsasunnk47n8o" path="res://Scenes/item_card.tscn" id="2_356ip"] +[ext_resource type="Script" path="res://Scripts/interact_button.gd" id="3_iia6u"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_s02au"] +albedo_color = Color(0.203922, 0.592157, 0.592157, 1) + +[sub_resource type="BoxShape3D" id="BoxShape3D_0ebt5"] +size = Vector3(2.672, 1.75, 1) + +[sub_resource type="ViewportTexture" id="ViewportTexture_yf4je"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ViewportTexture" id="ViewportTexture_3q3h0"] +viewport_path = NodePath("SubViewport2") + +[sub_resource type="ViewportTexture" id="ViewportTexture_vyyy4"] +viewport_path = NodePath("SubViewport3") + +[sub_resource type="BoxShape3D" id="BoxShape3D_ikdwj"] +size = Vector3(1.29447, 0.342125, 0.277604) + +[sub_resource type="BoxShape3D" id="BoxShape3D_gv3t5"] +size = Vector3(0.763889, 0.773027, 0.0570252) + +[node name="CardPrinter" type="StaticBody3D" node_paths=PackedStringArray("cards", "button_collider", "button_box", "choice_colliders")] +script = ExtResource("1_7rhtj") +cards = [NodePath("SubViewport/Node2D"), NodePath("SubViewport2/Node2D"), NodePath("SubViewport3/Node2D")] +item_card_scene = ExtResource("2_356ip") +button_collider = NodePath("StaticBody3D/CollisionShape3D2") +button_box = NodePath("StaticBody3D/CollisionShape3D2/CSGBox3D") +choice_colliders = [NodePath("StaticBody3D2/CollisionShape3D2"), NodePath("StaticBody3D3/CollisionShape3D2"), NodePath("StaticBody3D4/CollisionShape3D2")] + +[node name="CSGBox3D" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0) +size = Vector3(2.672, 1.75, 1) +material = SubResource("StandardMaterial3D_s02au") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0) +shape = SubResource("BoxShape3D_0ebt5") + +[node name="SubViewport" type="SubViewport" parent="."] +transparent_bg = true +size = Vector2i(192, 192) +render_target_update_mode = 4 + +[node name="Node2D" parent="SubViewport" instance=ExtResource("2_7ouw1")] + +[node name="SubViewport2" type="SubViewport" parent="."] +transparent_bg = true +size = Vector2i(192, 192) +render_target_update_mode = 4 + +[node name="Node2D" parent="SubViewport2" instance=ExtResource("2_7ouw1")] + +[node name="SubViewport3" type="SubViewport" parent="."] +transparent_bg = true +size = Vector2i(192, 192) +render_target_update_mode = 4 + +[node name="Node2D" parent="SubViewport3" instance=ExtResource("2_7ouw1")] + +[node name="Node3D" type="Node3D" parent="."] +visible = false + +[node name="Sprite3D" type="Sprite3D" parent="Node3D"] +transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, -0.805106, 1.12938, 0.500052) +texture_filter = 0 +texture = SubResource("ViewportTexture_yf4je") + +[node name="Sprite3D2" type="Sprite3D" parent="Node3D"] +transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.0180808, 1.12938, 0.500052) +texture_filter = 0 +texture = SubResource("ViewportTexture_3q3h0") + +[node name="Sprite3D3" type="Sprite3D" parent="Node3D"] +transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.843507, 1.12938, 0.500052) +texture_filter = 0 +texture = SubResource("ViewportTexture_vyyy4") + +[node name="StaticBody3D" type="StaticBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.444448, 0.610684) +collision_layer = 16 +collision_mask = 0 +script = ExtResource("3_iia6u") +press_cost = 10 + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"] +shape = SubResource("BoxShape3D_ikdwj") + +[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D/CollisionShape3D2"] +size = Vector3(1.29447, 0.342125, 0.277604) + +[node name="StaticBody3D2" type="StaticBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.756734, 1.15772, 0.610684) +collision_layer = 16 +collision_mask = 0 +script = ExtResource("3_iia6u") + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0466152, -0.0297148, -0.0917365) +shape = SubResource("BoxShape3D_gv3t5") + +[node name="StaticBody3D3" type="StaticBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0672475, 1.15772, 0.610684) +collision_layer = 16 +collision_mask = 0 +script = ExtResource("3_iia6u") +button_press_value = 1 + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0466152, -0.0297148, -0.0917365) +shape = SubResource("BoxShape3D_gv3t5") + +[node name="StaticBody3D4" type="StaticBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.883877, 1.15772, 0.610684) +collision_layer = 16 +collision_mask = 0 +script = ExtResource("3_iia6u") +button_press_value = 2 + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D4"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0466152, -0.0297148, -0.0917365) +shape = SubResource("BoxShape3D_gv3t5") + +[connection signal="button_interacted" from="StaticBody3D" to="." method="_on_static_body_3d_button_interacted"] +[connection signal="button_interacted" from="StaticBody3D2" to="." method="retrieve_card"] +[connection signal="button_interacted" from="StaticBody3D3" to="." method="retrieve_card"] +[connection signal="button_interacted" from="StaticBody3D4" to="." method="retrieve_card"] diff --git a/Scenes/damage_particle.tscn b/Scenes/damage_particle.tscn new file mode 100644 index 0000000..654a082 --- /dev/null +++ b/Scenes/damage_particle.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=3 format=3 uid="uid://cqtew0t8sttpm"] + +[ext_resource type="Script" path="res://Scripts/damage_particle.gd" id="1_lgvaq"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_ppqlh"] +viewport_path = NodePath("SubViewport") + +[node name="Node3D" type="Sprite3D"] +pixel_size = 0.0006 +billboard = 1 +fixed_size = true +render_priority = 1 +texture = SubResource("ViewportTexture_ppqlh") +script = ExtResource("1_lgvaq") + +[node name="SubViewport" type="SubViewport" parent="."] +transparent_bg = true +size = Vector2i(172, 57) +render_target_update_mode = 4 + +[node name="Label" type="Label" parent="SubViewport"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_font_sizes/font_size = 60 +text = "12345" +horizontal_alignment = 1 +vertical_alignment = 1 diff --git a/Scenes/enemy_spawner.tscn b/Scenes/enemy_spawner.tscn new file mode 100644 index 0000000..5d15890 --- /dev/null +++ b/Scenes/enemy_spawner.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=3 format=3 uid="uid://d2yv447trxkwt"] + +[ext_resource type="Script" path="res://Scripts/enemy_spawner.gd" id="1_23wuv"] +[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="2_muaoj"] + +[node name="Node3D" type="Node3D"] +script = ExtResource("1_23wuv") +land_enemy_scene = ExtResource("2_muaoj") + +[node name="CSGBox3D" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) diff --git a/Scenes/gauntlet.tscn b/Scenes/gauntlet.tscn new file mode 100644 index 0000000..a656729 --- /dev/null +++ b/Scenes/gauntlet.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=5 format=3 uid="uid://dqt1ggtkpkuhs"] + +[ext_resource type="Script" path="res://Scripts/edit_tool.gd" id="1_yf8lt"] +[ext_resource type="PackedScene" uid="uid://ddbbwx0yy16lh" path="res://Scenes/tower_base.tscn" id="2_r3632"] +[ext_resource type="Texture2D" uid="uid://gh4yvnerf1f5" path="res://Assets/Textures/radial.png" id="3_a323w"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_36ot1"] +transparency = 1 + +[node name="EditTool" type="Node3D" node_paths=PackedStringArray("ray", "wall_preview", "progress_bar")] +script = ExtResource("1_yf8lt") +ray = NodePath("RayCast3D") +wall_preview = NodePath("WallPreview") +build_preview_material = SubResource("StandardMaterial3D_36ot1") +progress_bar = NodePath("ProgressBar") + +[node name="RayCast3D" type="RayCast3D" parent="."] +target_position = Vector3(0, 0, -20) +collision_mask = 25 + +[node name="WallPreview" parent="." instance=ExtResource("2_r3632")] +visible = false + +[node name="ProgressBar" type="TextureProgressBar" parent="."] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -90.0 +offset_top = -90.0 +offset_right = 90.0 +offset_bottom = 90.0 +grow_horizontal = 2 +grow_vertical = 2 +scale = Vector2(0.5, 0.5) +pivot_offset = Vector2(90, 90) +step = 0.0 +fill_mode = 4 +texture_progress = ExtResource("3_a323w") diff --git a/Scenes/item_card.tscn b/Scenes/item_card.tscn new file mode 100644 index 0000000..66bff77 --- /dev/null +++ b/Scenes/item_card.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=5 format=3 uid="uid://dsasunnk47n8o"] + +[ext_resource type="Script" path="res://Scripts/item_card.gd" id="1_f3ek5"] +[ext_resource type="Script" path="res://Scripts/float_and_spin.gd" id="2_yfdc3"] + +[sub_resource type="Curve" id="Curve_qb7ge"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.5, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_bf4ou"] +height = 1.0 + +[node name="Node3D" type="StaticBody3D"] +collision_layer = 8 +collision_mask = 0 +script = ExtResource("1_f3ek5") + +[node name="model" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0) +target_position = Vector3(0, -10, 0) +script = ExtResource("2_yfdc3") +float_height = 0.7 +curve = SubResource("Curve_qb7ge") + +[node name="CSGSphere3D" type="CSGSphere3D" parent="model"] +radius = 0.1 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.7, 0) +shape = SubResource("CapsuleShape3D_bf4ou") diff --git a/Scenes/path_visual_thing.tscn b/Scenes/path_visual_thing.tscn new file mode 100644 index 0000000..7fa94d6 --- /dev/null +++ b/Scenes/path_visual_thing.tscn @@ -0,0 +1,24 @@ +[gd_scene load_steps=4 format=3 uid="uid://clbw3osqy2ww2"] + +[ext_resource type="Script" path="res://Scripts/path_visual_thing.gd" id="1_pgun7"] +[ext_resource type="Texture2D" uid="uid://cy786nrpcdr5o" path="res://Assets/Textures/minimap_path_visual.png" id="2_0gsds"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lutld"] +albedo_color = Color(0.0509804, 0.337255, 0.709804, 1) + +[node name="PathFollow3D" type="PathFollow3D" node_paths=PackedStringArray("world_model", "minimap_model")] +use_model_front = true +script = ExtResource("1_pgun7") +world_model = NodePath("CSGSphere3D") +minimap_model = NodePath("Sprite3D") + +[node name="CSGSphere3D" type="CSGSphere3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0) +radius = 0.05 +material = SubResource("StandardMaterial3D_lutld") + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.385229, 0) +layers = 4 +texture_filter = 0 +texture = ExtResource("2_0gsds") diff --git a/Scenes/status_icon.tscn b/Scenes/status_icon.tscn new file mode 100644 index 0000000..77344da --- /dev/null +++ b/Scenes/status_icon.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://dp45xkbsslr0k"] + +[ext_resource type="Texture2D" uid="uid://bpixdxdjnr5tw" path="res://Assets/Textures/glue_icon.png" id="1_d3stl"] + +[node name="StatusIcon" type="TextureRect"] +texture_filter = 1 +texture = ExtResource("1_d3stl") diff --git a/Scenes/target_icon.tscn b/Scenes/target_icon.tscn new file mode 100644 index 0000000..fd6d151 --- /dev/null +++ b/Scenes/target_icon.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://csufsbi64asau"] + +[ext_resource type="Texture2D" uid="uid://hnfa76d6tdi" path="res://Assets/Textures/target_icon.png" id="1_r4a3f"] + +[node name="Node3D" type="Sprite3D"] +sorting_offset = 20.0 +pixel_size = 0.003 +billboard = 1 +no_depth_test = true +fixed_size = true +texture_filter = 0 +texture = ExtResource("1_r4a3f") diff --git a/Scenes/tower_base.tscn b/Scenes/tower_base.tscn new file mode 100644 index 0000000..aaf4606 --- /dev/null +++ b/Scenes/tower_base.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=5 format=3 uid="uid://ddbbwx0yy16lh"] + +[ext_resource type="Script" path="res://Scripts/tower_base.gd" id="1_tghvd"] +[ext_resource type="Script" path="res://Scripts/inventory.gd" id="2_p5c7g"] +[ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="3_01hk3"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_lc72v"] + +[node name="Node3D" type="StaticBody3D" node_paths=PackedStringArray("inventory", "block", "collider", "minimap_icon")] +collision_layer = 17 +script = ExtResource("1_tghvd") +inventory = NodePath("Inventory") +block = NodePath("CSGBox3D") +collider = NodePath("CollisionShape3D") +minimap_icon = NodePath("Sprite3D") + +[node name="CSGBox3D" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) + +[node name="Inventory" type="Node" parent="."] +script = ExtResource("2_p5c7g") +max_size = 1 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +shape = SubResource("BoxShape3D_lc72v") + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(3.5, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07, 0, 3.09462, 0) +layers = 4 +modulate = Color(0, 1, 0, 1) +texture_filter = 0 +texture = ExtResource("3_01hk3") diff --git a/Scenes/tower_frame.tscn b/Scenes/tower_frame.tscn new file mode 100644 index 0000000..33b991c --- /dev/null +++ b/Scenes/tower_frame.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=6 format=3 uid="uid://c2cpc8f0l7soh"] + +[ext_resource type="Texture2D" uid="uid://ba85u6i558x4w" path="res://Assets/Textures/minimap_node.png" id="1_phew5"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xt3aj"] +albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_gbm1j"] +albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_18qg8"] +albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ip8b2"] +albedo_color = Color(0.0980392, 0.309804, 0.180392, 1) + +[node name="Node3D" type="Node3D"] + +[node name="CSGBox3D2" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0.525) +size = Vector3(1, 0.04, 0.05) +material = SubResource("StandardMaterial3D_xt3aj") + +[node name="CSGBox3D3" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, -0.525) +size = Vector3(1, 0.04, 0.05) +material = SubResource("StandardMaterial3D_gbm1j") + +[node name="CSGBox3D4" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.525, 0.02, 0) +size = Vector3(0.05, 0.04, 1.1) +material = SubResource("StandardMaterial3D_18qg8") + +[node name="CSGBox3D5" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.525, 0.02, 0) +size = Vector3(0.05, 0.04, 1.1) +material = SubResource("StandardMaterial3D_ip8b2") + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(3.5, 0, 0, 0, -1.5299e-07, 3.5, 0, -3.5, -1.5299e-07, 0, 0, 0) +layers = 4 +texture_filter = 0 +texture = ExtResource("1_phew5") diff --git a/Scenes/visual_path.tscn b/Scenes/visual_path.tscn new file mode 100644 index 0000000..fb06e92 --- /dev/null +++ b/Scenes/visual_path.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=3 format=3 uid="uid://dtfw0tefhb6qq"] + +[ext_resource type="Script" path="res://Scripts/visualized_path.gd" id="1_34oex"] + +[sub_resource type="Curve3D" id="Curve3D_tcut2"] +_data = { +"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, -0.894202, 0.687927, -2.77275, 0, 0, -2), +"tilts": PackedFloat32Array(0, 0) +} +point_count = 2 + +[node name="Node3D" type="Path3D"] +curve = SubResource("Curve3D_tcut2") +script = ExtResource("1_34oex") diff --git a/Scripts/AStarGraph3D.gd b/Scripts/AStarGraph3D.gd new file mode 100644 index 0000000..7d5a9c8 --- /dev/null +++ b/Scripts/AStarGraph3D.gd @@ -0,0 +1,97 @@ +extends Node3D +class_name AStarGraph3D + +@export var grid_size := Vector2(21, 13) +@export var point_gap := 1.2 +var non_build_locations = [] +var astar := AStar3D.new() + +#TODO generalize this better +@export var start : Node3D +@export var end : Node3D +@export var spawner : EnemySpawner +@export var visualized_path : VisualizedPath +var tower_base_scene = load("res://Scenes/tower_base.tscn") +var tower_frame_scene = load("res://Scenes/tower_frame.tscn") +var tower_bases = [] + + +func toggle_point(point_id): + networked_toggle_point.rpc(point_id) + + +func point_is_build_location(point_id): + return !non_build_locations.has(point_id) + + +func test_path_if_point_toggled(point_id): + if astar.is_point_disabled(point_id): + astar.set_point_disabled(point_id, false) + else: + astar.set_point_disabled(point_id, true) + var result = find_path() + if astar.is_point_disabled(point_id): + astar.set_point_disabled(point_id, false) + else: + astar.set_point_disabled(point_id, true) + return result + + +@rpc("reliable", "any_peer", "call_local") +func networked_toggle_point(point_id): + if astar.is_point_disabled(point_id): + astar.set_point_disabled(point_id, false) + else: + astar.set_point_disabled(point_id, true) + var base = tower_base_scene.instantiate() + base.position = astar.get_point_position(point_id) + tower_bases.append(base) + add_child(base) + find_path() + + +func find_path() -> bool: + var path = astar.get_point_path(astar.get_point_count() - 2, astar.get_point_count() - 1) + if !path.is_empty(): + var curve = Curve3D.new() + for point in path: + curve.add_point(point) + spawner.path.curve = curve + spawner.path.spawn_visualizer_points() + return true + return false + + +func make_grid(): + for x in grid_size.x: + for y in grid_size.y: + var point_position = Vector3((x - floori(grid_size.x / 2)) * point_gap, 0.5, (y - floori(grid_size.y / 2)) * point_gap) + astar.add_point(int(x * grid_size.y + y), point_position) + var frame = tower_frame_scene.instantiate() + frame.position = point_position + add_child(frame) + + for x in grid_size.x: + for y in grid_size.y: + var point_id = grid_size.y * x + y + if x > 0: + var north_point_id = grid_size.y * (x - 1) + y + astar.connect_points(point_id, north_point_id, false) + if x < grid_size.x - 1: + var south_point_id = grid_size.y * (x + 1) + y + astar.connect_points(point_id, south_point_id, false) + if y > 0: + var east_point_id = grid_size.y * x + (y - 1) + astar.connect_points(point_id, east_point_id, false) + if y < grid_size.y - 1: + var west_point_id = grid_size.y * x + (y + 1) + astar.connect_points(point_id, west_point_id, false) + + non_build_locations.append(astar.get_point_count()) + astar.add_point(astar.get_point_count(), start.global_position) + for x in grid_size.y: + astar.connect_points(int(astar.get_point_count() - 1), x) + non_build_locations.append(astar.get_point_count()) + astar.add_point(astar.get_point_count(), end.global_position) + for x in grid_size.y: + astar.connect_points(astar.get_point_count() - 1, int(grid_size.y * (grid_size.x - 1) + x)) diff --git a/Scripts/DebugMesh.gd b/Scripts/DebugMesh.gd new file mode 100644 index 0000000..6a9e7a2 --- /dev/null +++ b/Scripts/DebugMesh.gd @@ -0,0 +1,42 @@ +@tool +extends MeshInstance3D +class_name DebugMesh + + +func _ready(): + var mat = StandardMaterial3D.new() + mesh = ImmediateMesh.new() + mat.no_depth_test = true + mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED + mat.vertex_color_use_as_albedo = true + mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA + set_material_override(mat) + + +func clear(): + mesh.clear_surfaces() + + +func draw_line(begin_pos: Vector3, end_pos: Vector3, color: Color = Color.RED) -> void: + mesh.surface_begin(Mesh.PRIMITIVE_LINES) + mesh.surface_set_color(color) + mesh.surface_add_vertex(begin_pos) + mesh.surface_add_vertex(end_pos) + mesh.surface_end() + + +func draw_sphere(center: Vector3, radius: float = 1.0, color: Color = Color.RED) -> void: + var step: int = 30 + var sppi: float = 2 * PI / step + var axes = [ + [Vector3.UP, Vector3.RIGHT], + [Vector3.RIGHT, Vector3.FORWARD], + [Vector3.FORWARD, Vector3.UP] + ] + for axis in axes: + mesh.surface_begin(Mesh.PRIMITIVE_LINE_STRIP) + mesh.surface_set_color(color) + for i in range(step + 1): + mesh.surface_add_vertex(center + (axis[0] * radius) + .rotated(axis[1], sppi * (i % step))) + mesh.surface_end() diff --git a/Scripts/HUD.gd b/Scripts/HUD.gd new file mode 100644 index 0000000..9ed98e2 --- /dev/null +++ b/Scripts/HUD.gd @@ -0,0 +1,78 @@ +extends CanvasLayer +class_name HUD + +var last_lives_count = 120 +@export var wave_count : Label +@export var lives_count : Label +@export var enemy_count : Label +@export var currency_count : Label +@export var crosshair : TextureRect +@export var minimap : TextureRect +@export var minimap_cam : MinimapCamera3D +@export var minimap_viewport : SubViewport +@export var fps_label : Label +var minimap_anchor : Node3D +@export var enemy_sprites : Array[TextureRect] +@export var enemy_counts : Array[Label] + + +func _process(_delta: float) -> void: + fps_label.text = "FPS: " + str(Engine.get_frames_per_second()) + + +func set_wave_count(value): + wave_count.text = str(value) + + +func set_lives_count(value): + lives_count.text = str(value) + for x in last_lives_count - value: + $LivesBar.take_life() + last_lives_count = value + + +func set_enemy_count(value): + enemy_count.text = "Enemies Remaining: " + str(value) + + +func set_upcoming_wave(value): + var frame_count = 0 + for x in enemy_sprites.size(): + enemy_sprites[x].set_visible(false) + enemy_counts[x].set_visible(false) + for enemy in value: + enemy_sprites[frame_count].texture = enemy.icon + enemy_counts[frame_count].text = str(value[enemy]) + enemy_sprites[frame_count].set_visible(true) + enemy_counts[frame_count].set_visible(true) + frame_count += 1 + + +func set_currency_count(value): + currency_count.text = str(value) + + +func set_crosshair_visible(value : bool): + crosshair.set_visible(value) + + +func maximise_minimap(anchor): + minimap_cam.anchor = anchor + minimap.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT) + minimap.offset_bottom = -40 + minimap.offset_top = 40 + minimap.offset_left = 40 + minimap.offset_right = -40 + minimap_viewport.size = Vector2(1840, 1000) + minimap_cam.size = 30 + + +func minimize_minimap(anchor): + minimap_cam.anchor = anchor + minimap.set_anchors_and_offsets_preset(Control.PRESET_TOP_RIGHT) + minimap.offset_right = -40 + minimap.offset_top = 40 + minimap.offset_left = -256 + minimap.offset_bottom = 256 + minimap_viewport.size = Vector2(256, 256) + minimap_cam.size = 15 diff --git a/Scripts/Resources/TowerStats.gd b/Scripts/Resources/TowerStats.gd new file mode 100644 index 0000000..93d0a47 --- /dev/null +++ b/Scripts/Resources/TowerStats.gd @@ -0,0 +1,7 @@ +extends Resource +class_name TowerStats + +@export var can_target : Data.TargetType +@export var damage := 10.0 +@export var fire_range := 20.0 +@export var fire_rate := 1.0 diff --git a/Scripts/Resources/WeaponStats.gd b/Scripts/Resources/WeaponStats.gd new file mode 100644 index 0000000..53835b0 --- /dev/null +++ b/Scripts/Resources/WeaponStats.gd @@ -0,0 +1,6 @@ +extends Resource +class_name WeaponStats + +@export var damage : int +@export var fire_rate : float +@export var fire_range : float diff --git a/Scripts/Resources/card.gd b/Scripts/Resources/card.gd new file mode 100644 index 0000000..26d9ffc --- /dev/null +++ b/Scripts/Resources/card.gd @@ -0,0 +1,13 @@ +extends Resource +class_name Card + +enum Faction {GENERIC} + +@export var title : String +@export var rarity : Data.Rarity +@export var faction : Faction +@export var sprite : AtlasTexture +@export var turret : PackedScene +@export var weapon : PackedScene +@export var weapon_stats : WeaponStats +@export var tower_stats : TowerStats diff --git a/Scripts/Resources/enemy.gd b/Scripts/Resources/enemy.gd new file mode 100644 index 0000000..62992d5 --- /dev/null +++ b/Scripts/Resources/enemy.gd @@ -0,0 +1,12 @@ +extends Resource +class_name Enemy + +@export var title = "dog" +@export var target_type : Data.EnemyType +@export var icon : Texture +@export var sprite : AtlasTexture +@export var spawn_power := 10 +@export var health = 100 +@export var penalty = 10 +@export var movement_speed = 0.5 +@export var spawn_cooldown = 1.0 diff --git a/Scripts/Resources/hero_class.gd b/Scripts/Resources/hero_class.gd new file mode 100644 index 0000000..6b7d451 --- /dev/null +++ b/Scripts/Resources/hero_class.gd @@ -0,0 +1,6 @@ +extends Resource +class_name HeroClass + +@export var hero_name : String = "Default" +@export var texture : AtlasTexture +@export var deck : Array[Card] diff --git a/Scripts/Resources/player_keymap.gd b/Scripts/Resources/player_keymap.gd new file mode 100644 index 0000000..c49562f --- /dev/null +++ b/Scripts/Resources/player_keymap.gd @@ -0,0 +1,63 @@ +extends Resource +class_name PlayerKeymap + +const SAVE_PATH := "user://keymap.tres" + +@export var title : String + +@export var move_forward : InputEventKey +@export var move_backward : InputEventKey +@export var move_left : InputEventKey +@export var move_right : InputEventKey +@export var jump : InputEventKey +@export var sprint : InputEventKey +@export var interact : InputEventKey +@export var open_text_chat : InputEventKey +@export var ready : InputEventKey +@export var pause : InputEventKey +@export var equip_card_in_gauntlet : InputEventKey +@export var view_map : InputEventKey + + +func apply(): + replace_action_event("Move Forward", move_forward) + replace_action_event("Move Backward", move_backward) + replace_action_event("Move Left", move_left) + replace_action_event("Move Right", move_right) + replace_action_event("Jump", jump) + replace_action_event("Sprint", sprint) + replace_action_event("Interact", interact) + replace_action_event("Open Text Chat", open_text_chat) + replace_action_event("Ready", ready) + replace_action_event("Pause", pause) + replace_action_event("Equip In Gauntlet", equip_card_in_gauntlet) + replace_action_event("View Map", view_map) + + +func replace_action_event(action_string, event): + InputMap.action_erase_events(action_string) + InputMap.action_add_event(action_string, event) + + +func get_current_input_map(): + move_forward = InputMap.action_get_events("Move Forward")[0] + move_backward = InputMap.action_get_events("Move Backward")[0] + move_left = InputMap.action_get_events("Move Left")[0] + move_right = InputMap.action_get_events("Move Right")[0] + jump = InputMap.action_get_events("Jump")[0] + sprint = InputMap.action_get_events("Sprint")[0] + interact = InputMap.action_get_events("Interact")[0] + open_text_chat = InputMap.action_get_events("Open Text Chat")[0] + ready = InputMap.action_get_events("Ready")[0] + pause = InputMap.action_get_events("Pause")[0] + equip_card_in_gauntlet = InputMap.action_get_events("Equip In Gauntlet")[0] + view_map = InputMap.action_get_events("View Map")[0] + + +func save_profile_to_disk(): + get_current_input_map() + ResourceSaver.save(self, SAVE_PATH) +static func load_profile_from_disk() -> PlayerKeymap: + if ResourceLoader.exists(SAVE_PATH): + return ResourceLoader.load(SAVE_PATH) + return Data.keymaps[0] diff --git a/Scripts/Resources/player_preferences.gd b/Scripts/Resources/player_preferences.gd new file mode 100644 index 0000000..27f21ce --- /dev/null +++ b/Scripts/Resources/player_preferences.gd @@ -0,0 +1,42 @@ +extends Resource +class_name PlayerPreferences + +const SAVE_PATH := "user://preferences.tres" + +@export var mouse_sens := 28.0 +@export var invert_lookY := false +@export var invert_lookX := false +@export var toggle_sprint := false +@export var vsync_mode := 1 +@export var aa_mode := 0 +@export var windowed_mode := 0 +@export var hfov := 100.0 + + +func apply_graphical_settings(viewport): + DisplayServer.window_set_vsync_mode(vsync_mode) + match aa_mode: + 0: + viewport.use_taa = false + viewport.screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED + 1: + viewport.use_taa = false + viewport.screen_space_aa = Viewport.SCREEN_SPACE_AA_FXAA + 2: + viewport.use_taa = true + viewport.screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED + match windowed_mode: + 0: + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + 1: + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) + 2: + DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN) + + +func save_profile_to_disk(): + ResourceSaver.save(self, SAVE_PATH) +static func load_profile_from_disk() -> PlayerPreferences: + if ResourceLoader.exists(SAVE_PATH): + return ResourceLoader.load(SAVE_PATH) + return PlayerPreferences.new() diff --git a/Scripts/Resources/player_profile.gd b/Scripts/Resources/player_profile.gd new file mode 100644 index 0000000..93f84c1 --- /dev/null +++ b/Scripts/Resources/player_profile.gd @@ -0,0 +1,47 @@ +extends Resource +class_name PlayerProfile + +signal display_name_changed(old_name, new_name) +signal preferred_class_changed(old_class, new_class) + +const SAVE_PATH := "user://profile.tres" + +@export var display_name := "Charlie" +@export var preferred_class := 0 + +func to_dict() -> Dictionary: + var dict = {} + dict["display_name"] = display_name + dict["preferred_class"] = preferred_class + return dict +static func from_dict(dict) -> PlayerProfile: + var output = PlayerProfile.new() + output.display_name = dict["display_name"] + output.preferred_class = dict["preferred_class"] + return output + +func set_display_name(new_display_name): + if new_display_name == display_name: + return + var old_name = display_name + display_name = new_display_name + save_profile_to_disk() + display_name_changed.emit(old_name, display_name) +func get_display_name() -> String: + return display_name + +func set_preferred_class(new_preferred_class): + if new_preferred_class == preferred_class: + return + var old_class = preferred_class + preferred_class = new_preferred_class + preferred_class_changed.emit(old_class, preferred_class) +func get_preferred_class() -> int: + return preferred_class + +func save_profile_to_disk(): + ResourceSaver.save(self, SAVE_PATH) +static func load_profile_from_disk() -> PlayerProfile: + if ResourceLoader.exists(SAVE_PATH): + return ResourceLoader.load(SAVE_PATH) + return PlayerProfile.new() diff --git a/Scripts/Resources/status_stats.gd b/Scripts/Resources/status_stats.gd new file mode 100644 index 0000000..e0e6efa --- /dev/null +++ b/Scripts/Resources/status_stats.gd @@ -0,0 +1,8 @@ +extends Resource +class_name StatusStats + +@export var unique := false +@export var proc_frequency := 0.0 +@export var duration := 1.0 +@export var potency := 1.0 +@export var icon : Texture diff --git a/Scripts/StatusEffector.gd b/Scripts/StatusEffector.gd new file mode 100644 index 0000000..438f030 --- /dev/null +++ b/Scripts/StatusEffector.gd @@ -0,0 +1,36 @@ +extends Node3D +class_name StatusEffector + +@export var hbox : HBoxContainer + +var icon_scene = preload("res://Scenes/status_icon.tscn") +var effects : Array[StatusEffect] +var icons : Array[TextureRect] + + +func add_effect(new_effect : StatusEffect): + var icon_present = false + for effect in effects: + if effect.stats == new_effect.stats: + icon_present = true + new_effect.expired.connect(remove_effect) + effects.append(new_effect) + if !icon_present: + var icon = icon_scene.instantiate() + icon.texture = new_effect.stats.icon + icons.append(icon) + hbox.add_child(icon) + + +func remove_effect(expiring_effect : StatusEffect): + effects.erase(expiring_effect) + var has_remaining_stack = false + for effect in effects: + if effect.stats == expiring_effect.stats: + has_remaining_stack = true + if !has_remaining_stack: + for icon in icons: + if icon.texture == expiring_effect.stats.icon: + icons.erase(icon) + icon.queue_free() + break diff --git a/Scripts/StatusEffects/StatusOnFire.gd b/Scripts/StatusEffects/StatusOnFire.gd new file mode 100644 index 0000000..8ab11ba --- /dev/null +++ b/Scripts/StatusEffects/StatusOnFire.gd @@ -0,0 +1,6 @@ +extends StatusEffect +class_name StatusOnFire + + +func proc(): + affected.damage(stats.potency) diff --git a/Scripts/StatusEffects/status_effect.gd b/Scripts/StatusEffects/status_effect.gd new file mode 100644 index 0000000..4bb354a --- /dev/null +++ b/Scripts/StatusEffects/status_effect.gd @@ -0,0 +1,44 @@ +extends Node +class_name StatusEffect + +signal expired(effect : StatusEffect) + +var stats : StatusStats + +var affected : + set(value): + affected = value + on_attached() +var cooldown := 0.0 +var other_cooldown := 0.0 +var time_existed := 0.0 + + +func on_attached(): + pass + + +func on_removed(): + expired.emit(self) + + +func proc(): + pass + + +func _ready(): + other_cooldown = 1.0 / stats.proc_frequency + + +func _process(delta: float) -> void: + time_existed += delta + if time_existed >= stats.duration: + on_removed() + queue_free() + return + if stats.proc_frequency > 0.0: + cooldown += delta + if cooldown >= other_cooldown: + cooldown -= other_cooldown + proc() + diff --git a/Scripts/StatusEffects/status_sticky.gd b/Scripts/StatusEffects/status_sticky.gd new file mode 100644 index 0000000..97ed73a --- /dev/null +++ b/Scripts/StatusEffects/status_sticky.gd @@ -0,0 +1,18 @@ +extends StatusEffect +class_name StatusSticky + + +func on_attached(): + super.on_attached() + affected.movement_speed = affected.stats.movement_speed * (1.0 - stats.potency) + + +func on_removed(): + super.on_removed() + var siblings = get_parent().get_children() + var stickies = 0 + for node in siblings: + if node is StatusSticky: + stickies += 1 + if stickies == 1: + affected.movement_speed = affected.stats.movement_speed diff --git a/Scripts/alert_popup.gd b/Scripts/alert_popup.gd new file mode 100644 index 0000000..c9789d5 --- /dev/null +++ b/Scripts/alert_popup.gd @@ -0,0 +1,13 @@ +extends PanelContainer +class_name AlertPopup + +signal completed + +func set_popup(prompt_text, dismiss_text): + $VBoxContainer/Label.text = prompt_text + $VBoxContainer/Button.text = dismiss_text + + +func _on_button_pressed() -> void: + completed.emit() + queue_free() diff --git a/Scripts/card_hand.gd b/Scripts/card_hand.gd new file mode 100644 index 0000000..1147189 --- /dev/null +++ b/Scripts/card_hand.gd @@ -0,0 +1,30 @@ +extends Node2D +class_name CardInHand + +var stats : Card +@export var rarity_sprite : Sprite2D +@export var title_text: Label +@export var damage_text_text: Label +@export var damage_text: Label +@export var fire_rate_text_text: Label +@export var fire_rate_text: Label +@export var range_text_text: Label +@export var range_text: Label + +func set_card(value): + stats = value + title_text.text = stats.title + rarity_sprite.region_rect = Rect2(64 * stats.rarity, 0, 64, 64) + view_weapon() + + +func view_weapon(): + damage_text.text = str(stats.weapon_stats.damage) + fire_rate_text.text = str(stats.weapon_stats.fire_rate) + range_text.text = str(stats.weapon_stats.fire_rate) + + +func view_tower(): + damage_text.text = str(stats.tower_stats.damage) + fire_rate_text.text = str(stats.tower_stats.fire_rate) + range_text.text = str(stats.tower_stats.fire_rate) diff --git a/Scripts/card_printer.gd b/Scripts/card_printer.gd new file mode 100644 index 0000000..9dfa5d5 --- /dev/null +++ b/Scripts/card_printer.gd @@ -0,0 +1,59 @@ +extends StaticBody3D +class_name CardPrinter + +@export var cards : Array[CardInHand] +@export var item_card_scene : PackedScene +var card_available = false +@export var button_collider : CollisionShape3D +@export var button_box : Node3D +@export var choice_colliders : Array[CollisionShape3D] + + +func randomize_cards(): + var weight_total = 0 + for rarity in Data.Rarity: + weight_total += Data.rarity_weights[rarity] + + var generated_rarity = randi_range(0, weight_total) + var decided_rarity := 0 + + for rarity in Data.Rarity: + weight_total -= Data.rarity_weights[rarity] + if generated_rarity >= weight_total: + decided_rarity = Data.Rarity[rarity] + break + + var card_array = [] + for x in Data.cards: + if x.rarity == decided_rarity: + card_array.append(x) + var card + for x in cards: + if card_array.size() > 0: + card = card_array.pick_random() + card_array.erase(card) + x.set_card(card) + $Node3D.set_visible(true) + for x in choice_colliders: + x.disabled = false + card_available = true + + +func retrieve_card(i): + $Node3D.set_visible(false) + for x in choice_colliders: + x.disabled = true + if card_available: + var card = cards[i].stats + var item = item_card_scene.instantiate() as ItemCard + item.card = card + add_child(item) + item.position += -transform.basis.z * 2 + button_collider.disabled = false + button_box.position = Vector3(0,0,0) + + +func _on_static_body_3d_button_interacted(_value) -> void: + button_collider.disabled = true + button_box.position = Vector3(0,0,-0.2) + randomize_cards() diff --git a/Scripts/chatbox.gd b/Scripts/chatbox.gd new file mode 100644 index 0000000..822cd7c --- /dev/null +++ b/Scripts/chatbox.gd @@ -0,0 +1,36 @@ +extends Control +class_name Chatbox + +signal opened +signal closed + +var text_selected := false +var username := "default" + +func _input(event: InputEvent) -> void: + if event.is_action_pressed("Open Text Chat"): + if text_selected: + closed.emit() + $VBoxContainer/LineEdit.deselect() + $VBoxContainer/LineEdit.visible = false + text_selected = false + if $VBoxContainer/LineEdit.text.length() != 0: + if $VBoxContainer/LineEdit.text.begins_with("/"): + Game.parse_command($VBoxContainer/LineEdit.text, multiplayer.get_unique_id()) + else: + rpc("append_message", username, $VBoxContainer/LineEdit.text) + $VBoxContainer/LineEdit.clear() + else: + opened.emit() + $VBoxContainer/LineEdit.visible = true + $VBoxContainer/LineEdit.grab_focus() + text_selected = true + + +func change_username(old_name, new_name): + append_message("server", old_name + " has changed their display name to " + new_name) + + +@rpc("reliable","call_local","any_peer") +func append_message(user, content): + $VBoxContainer/RichTextLabel.append_text("[" + user + "] " + content + "\n") diff --git a/Scripts/confirmation_popup.gd b/Scripts/confirmation_popup.gd new file mode 100644 index 0000000..d4ee903 --- /dev/null +++ b/Scripts/confirmation_popup.gd @@ -0,0 +1,19 @@ +extends PanelContainer +class_name ConfirmationPopup + +signal completed(outcome) + +func set_popup(prompt_text, confirm_text, cancel_text): + $VBoxContainer/Label.text = prompt_text + $VBoxContainer/HBoxContainer/Confirm.text = confirm_text + $VBoxContainer/HBoxContainer/Cancel.text = cancel_text + + +func _on_confirm_pressed() -> void: + completed.emit(true) + queue_free() + + +func _on_cancel_pressed() -> void: + completed.emit(false) + queue_free() diff --git a/Scripts/damage_particle.gd b/Scripts/damage_particle.gd new file mode 100644 index 0000000..5033cf9 --- /dev/null +++ b/Scripts/damage_particle.gd @@ -0,0 +1,23 @@ +extends Sprite3D + +@onready var label: Label = $SubViewport/Label +var time_alive := 0.0 +var movement_speed := 1.0 +var movement_vector : Vector3 + +func _ready(): + var theta = deg_to_rad(40) + var z = randf_range(cos(theta), 1) + var phi = randf_range(0, 2 * PI) + var vector = Vector3(sqrt(1 - pow(z, 2)) * cos(phi), z, sqrt(1 - pow(z, 2)) * sin(phi)) + movement_vector = vector.normalized() + +func set_number(num): + label.text = str(num) + + +func _process(delta: float) -> void: + time_alive += delta + position += movement_vector * movement_speed * delta + if time_alive >= 1.0: + queue_free() diff --git a/Scripts/data.gd b/Scripts/data.gd new file mode 100644 index 0000000..d07ffa7 --- /dev/null +++ b/Scripts/data.gd @@ -0,0 +1,53 @@ +extends Node + +var characters : Array[HeroClass] +var cards : Array[Card] +var enemies : Array[Enemy] +var keymaps : Array[PlayerKeymap] +var preferences : PlayerPreferences +var player_profile : PlayerProfile +var player_keymap : PlayerKeymap + +var wall_cost := 4 +var printer_cost := 10 +enum TargetType {LAND = 1, AIR = 2, BOTH = 3} +enum EnemyType {LAND = 1, AIR = 2} +enum Rarity {COMMON, UNCOMMON, RARE, EPIC, LEGENDARY} +var rarity_weights = { + "COMMON" = 100, + "UNCOMMON" = 60, + "RARE" = 20, + "EPIC" = 8, + "LEGENDARY" = 1 +} + +func _ready() -> void: + player_profile = PlayerProfile.load_profile_from_disk() + preferences = PlayerPreferences.load_profile_from_disk() + player_keymap = PlayerKeymap.load_profile_from_disk() + preferences.apply_graphical_settings(get_viewport()) + player_keymap.apply() + + characters.append(preload("res://PCs/Red/red.tres")) + characters.append(preload("res://PCs/Green/green.tres")) + characters.append(preload("res://PCs/Blue/blue.tres")) + + cards.append(preload("res://PCs/Universal/ClassCards/Assault/card_assault.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/BombLauncher/card_grenade_launcher.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/Flamethrower/card_flamethrower.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/Gatling/card_gatling.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres")) + + enemies.append(preload("res://Worlds/GreenPlanet/Enemies/dog.tres")) + enemies.append(preload("res://Worlds/GreenPlanet/Enemies/dog_fast.tres")) + enemies.append(preload("res://Worlds/GreenPlanet/Enemies/dog_heavy.tres")) + enemies.append(preload("res://Worlds/GreenPlanet/Enemies/dog_boss.tres")) + enemies.append(preload("res://Worlds/GreenPlanet/Enemies/airenemy.tres")) + enemies.append(preload("res://Worlds/GreenPlanet/Enemies/airenemy2.tres")) + + keymaps.append(preload("res://Resources/Keymaps/qwerty.tres")) + keymaps.append(preload("res://Resources/Keymaps/azerty.tres")) + keymaps.append(preload("res://Resources/Keymaps/dvorak.tres")) + keymaps.append(preload("res://Resources/Keymaps/colemak.tres")) + keymaps.append(preload("res://Resources/Keymaps/workman.tres")) diff --git a/Scripts/edit_tool.gd b/Scripts/edit_tool.gd new file mode 100644 index 0000000..1af9b65 --- /dev/null +++ b/Scripts/edit_tool.gd @@ -0,0 +1,103 @@ +extends Node3D +class_name EditTool + +@export var hero : Hero +@export var inventory : Inventory +@export var ray : RayCast3D +@export var wall_preview : TowerBase +@export var build_preview_material : StandardMaterial3D +@export var progress_bar : TextureProgressBar + +var enabled := true +var point_id := -1 +var obstacle_last_point : int +var valid_point := false +var is_looking_at_tower_base := false +var ray_collider +var ray_point + +var interact_key_held := false +var interacted_once := false +var interact_held_time := 0.0 +var interact_hold_time := 0.5 + + +func _ready() -> void: + wall_preview.set_material(build_preview_material) + wall_preview.toggle_collision() + + +func _process(delta: float) -> void: + if !enabled: + ray_collider = null + ray_point = null + wall_preview.set_visible(false) + return + + if interact_key_held and !interacted_once and valid_point and hero.currency >= Data.wall_cost and ray.is_colliding() and Game.level.a_star_graph_3d.point_is_build_location(point_id): + interact_held_time += delta + set_progress_percent(interact_held_time / interact_hold_time) + if interact_held_time >= interact_hold_time: + set_progress_percent(0) + interacted_once = true + build_wall() + if !interact_key_held: + interact_held_time = 0.0 + interacted_once = false + set_progress_percent(0) + + point_id = -1 + if ray.is_colliding(): + if !interact_key_held: + wall_preview.set_visible(true) + ray_collider = ray.get_collider() + ray_point = ray.get_collision_point() + + is_looking_at_tower_base = ray_collider is TowerBase + if Game.level: + point_id = Game.level.a_star_graph_3d.astar.get_closest_point(ray_point) + if !Game.level.a_star_graph_3d.point_is_build_location(point_id) or hero.currency < Data.wall_cost: + wall_preview.set_visible(false) + else: + var point_position = Game.level.a_star_graph_3d.astar.get_point_position(point_id) + wall_preview.global_position = point_position + wall_preview.global_rotation = Vector3.ZERO + if obstacle_last_point != point_id: + obstacle_last_point = point_id + if Game.level.a_star_graph_3d.test_path_if_point_toggled(point_id): + build_preview_material.albedo_color = Color.GREEN + build_preview_material.albedo_color.a = 0.8 + valid_point = true + else: + build_preview_material.albedo_color = Color.RED + build_preview_material.albedo_color.a = 0.8 + valid_point = false + else: + ray_collider = null + ray_point = null + is_looking_at_tower_base = false + wall_preview.set_visible(false) + + +func interact(): + if ray_collider is TowerBase: + var tower_base = ray_collider as TowerBase + put_card_in_tower_base(tower_base) + + +func build_wall(): + if point_id >= 0 and valid_point and hero.currency >= Data.wall_cost: + hero.currency -= Data.wall_cost + Game.level.a_star_graph_3d.toggle_point(point_id) + wall_preview.set_visible(false) + + +func put_card_in_tower_base(tower_base: TowerBase): + if tower_base.has_card: + inventory.add(tower_base.remove_card()) + else: + tower_base.add_card(inventory.remove()) + + +func set_progress_percent(value: float): + progress_bar.value = progress_bar.max_value * value diff --git a/Scripts/eight_direction_sprite.gd b/Scripts/eight_direction_sprite.gd new file mode 100644 index 0000000..1fca9bf --- /dev/null +++ b/Scripts/eight_direction_sprite.gd @@ -0,0 +1,36 @@ +extends Sprite3D +class_name EightDirectionSprite3D + + +func _process(_delta: float) -> void: + var cam = get_viewport().get_camera_3d() + if !cam: + return + var tile_size = texture.region.size.x + + #stupid algorithm for dummy game developers + var camera_look_dir_3D = cam.global_position.direction_to(global_position).normalized() + var a = Vector2(global_transform.basis.z.x, global_transform.basis.z.z).normalized() + var b = Vector2(camera_look_dir_3D.x, camera_look_dir_3D.z).normalized() + var dot = a.x * b.x + a.y * b.y + var det = a.x * b.y - a.y * b.x + var final = rad_to_deg(atan2(det, dot)) + 180 + + var t = texture.region + if final > 337.5 or final < 22.5: + t = Rect2(tile_size * 4, t.position.y, tile_size, tile_size) + elif final > 22.5 and final < 67.5: + t = Rect2(tile_size * 5, t.position.y, tile_size, tile_size) + elif final > 67.5 and final < 112.5: + t = Rect2(tile_size * 6, t.position.y, tile_size, tile_size) + elif final > 112.5 and final < 157.5: + t = Rect2(tile_size * 7, t.position.y, tile_size, tile_size) + elif final > 157.5 and final < 202.5: + t = Rect2(0, t.position.y, tile_size, tile_size) + elif final > 202.5 and final < 247.5: + t = Rect2(tile_size * 1, t.position.y, tile_size, tile_size) + elif final > 247.5 and final < 292.5: + t = Rect2(tile_size * 2, t.position.y, tile_size, tile_size) + elif final > 292.5 and final < 337.5: + t = Rect2(tile_size * 3, t.position.y, tile_size, tile_size) + texture.region = t diff --git a/Scripts/enemy_spawner.gd b/Scripts/enemy_spawner.gd new file mode 100644 index 0000000..759786f --- /dev/null +++ b/Scripts/enemy_spawner.gd @@ -0,0 +1,66 @@ +extends Node3D +class_name EnemySpawner + +@export var path : VisualizedPath +@export var type : Data.EnemyType +@export var dest : Node3D + +var signal_for_after_enemy_died +var signal_for_after_enemy_reached_goal +signal signal_for_when_enemy_spawns + +var current_wave +var enemy_spawn_timers = {} +var enemies_spawned = {} +var enemies_to_spawn := 0 +var done_spawning = true + +@export var land_enemy_scene : PackedScene +@export var air_enemy_scene : PackedScene + + +func _process(delta: float) -> void: + if enemies_to_spawn == 0: + done_spawning = true + return + + for x in enemy_spawn_timers: + if enemies_spawned[x] == current_wave[x]: + continue + var enemy_stats = x + enemy_spawn_timers[x] += delta + if enemy_spawn_timers[x] >= enemy_stats.spawn_cooldown: + if type == Data.EnemyType.LAND: + var enemy = land_enemy_scene.instantiate() as EnemyController + enemy.stats = enemy_stats + enemy.died.connect(signal_for_after_enemy_died) + enemy.reached_goal.connect(signal_for_after_enemy_reached_goal) + path.add_child(enemy) + enemy_spawn_timers[x] -= enemy_stats.spawn_cooldown + signal_for_when_enemy_spawns.emit() + if type == Data.EnemyType.AIR: + var enemy = air_enemy_scene.instantiate() as AirEnemyController + enemy.stats = enemy_stats + enemy.destination = dest + enemy.died.connect(signal_for_after_enemy_died) + enemy.reached_goal.connect(signal_for_after_enemy_reached_goal) + add_child(enemy) + enemy_spawn_timers[x] -= enemy_stats.spawn_cooldown + signal_for_when_enemy_spawns.emit() + enemies_spawned[x] += 1 + enemies_to_spawn -= 1 + + +func spawn_wave(value): + var relevant_enemies = {} + for x in value: + if x.target_type == type: + relevant_enemies[x] = value[x] + current_wave = relevant_enemies + enemies_to_spawn = 0 + enemy_spawn_timers = {} + for x in current_wave: + enemies_to_spawn += current_wave[x] + enemy_spawn_timers[x] = 0.0 + enemies_spawned[x] = 0 + done_spawning = false diff --git a/Scripts/float_and_spin.gd b/Scripts/float_and_spin.gd new file mode 100644 index 0000000..c91c045 --- /dev/null +++ b/Scripts/float_and_spin.gd @@ -0,0 +1,35 @@ +extends RayCast3D + +@export_range(0.0, 3.0) var float_height := 1.5 +@export_range(0.0, 2.0) var bounce_dist := 0.5 +@export_range(0.0, 2.0) var bounce_speed := 0.4 +@export_range(0.0, 4.0) var spin_speed := 0.5 +@export var curve: Curve + +var start_height = 0.0 +var dest_height = 0.0 +var t = 0.0 + +func _ready(): + start_height = position.y + + #raycast downwards and position the item at a set height above the ground that the raycast + #presumably hits + + #Now I know what you're thinking: "if the item is placed on the ground in the editor anyway, we can put + #the item at the correct height by simply adding the height to the existing y value that the item will have + #anyway when the game starts" but what you're not considering is that for ease of placement the model will probably + #always be given an offset from the root nodes position so as youre placing it in the editor its not clipping through + #the ground, and some items might be given more or less of this vertical offset, if we do it at runtime by actually + #checking where the ground is, you dont need to fuck around with this offset at the scene level, you just adjust + #the script variable and the item can figure itself out, yeah its fancy but its also a nice creature comfort. + if is_colliding(): + start_height = get_collision_point().y + (1 * float_height) - (bounce_dist / 2.0) + dest_height = start_height + (bounce_dist / 2.0) + +func _process(delta): + t += bounce_speed * delta + position.y = start_height + (dest_height - start_height) * curve.sample(t) + if t >= 1.0: + t = 0.0 + rotation.y += spin_speed * delta diff --git a/Scripts/game.gd b/Scripts/game.gd new file mode 100644 index 0000000..1e1a09e --- /dev/null +++ b/Scripts/game.gd @@ -0,0 +1,211 @@ +extends Node + +signal wave_started(wave_number) +signal wave_finished(wave_number) +signal base_took_damage(remaining_health) +signal game_started +signal game_restarted +signal lost_game +signal won_game +signal enemy_number_changed(number_of_enemies) + +var level_scene = load("res://Worlds/GreenPlanet/Levels/first_level.tscn") +var player_scene = load("res://PCs/hero.tscn") +var main_menu_scene_path = "res://Scenes/Menus/main_menu.tscn" +var multiplayer_lobby_scene_path = "res://Scenes/Menus/multiplayer_lobby.tscn" +var singleplayer_lobby_scene_path = "res://Scenes/Menus/singleplayer_lobby.tscn" +var won_game_scene = load("res://Scenes/Menus/won_game_screen.tscn") +var lose_game_scene = load("res://Scenes/Menus/lost_game_screen.tscn") +var connected_players_nodes = {} +var game_active := false +var level : Level +var enemies := 0 +var objective_health := 120 +var wave := 0 +var upcoming_wave +var pot : int + + +func parse_command(text : String, peer_id : int): + if text.substr(1, 4) == "give": + var gift_name = text.substr(6) as String + var gift = Data.cards[0] + for x in Data.cards: + if x.title == gift_name: + gift = x + connected_players_nodes[peer_id].inventory.add(gift) + + +func spawn_level(): + level = level_scene.instantiate() as Level + for x in level.enemy_spawns: + #x.path = level.a_star_graph_3d.visualized_path + x.signal_for_after_enemy_died = enemy_died + x.signal_for_after_enemy_reached_goal = damage_goal + x.signal_for_when_enemy_spawns.connect(increase_enemy_count) + add_child(level) + + +func spawn_players(player_array, player_profiles, chatbox_open_signal, chatbox_closed_signal): + var p_i = 0 + player_array.sort() + for peer_id in player_array: + var player = player_scene.instantiate() as Hero + player.name = str(peer_id) + player.position = level.player_spawns[p_i].global_position + player.profile = player_profiles[peer_id] + player.hero_class = Data.characters[player_profiles[peer_id].preferred_class] + player.ready_state_changed.connect(ready_player) + if peer_id == multiplayer.get_unique_id(): + chatbox_open_signal.connect(player.pause) + chatbox_closed_signal.connect(player.unpause) + player.set_multiplayer_authority(peer_id) + connected_players_nodes[peer_id] = player + wave_started.connect(player.exit_editing_mode) + wave_finished.connect(player.enter_editing_mode) + base_took_damage.connect(player.hud.set_lives_count) + enemy_number_changed.connect(player.hud.set_enemy_count) + add_child(player) + p_i += 1 + start_game() + + +func ready_player(_value): + for key in connected_players_nodes: + if connected_players_nodes[key].ready_state == false: + return + for key in connected_players_nodes: + connected_players_nodes[key].ready_state = false + spawn_enemy_wave() + + +func spawn_enemy_wave(): + wave += 1 + level.a_star_graph_3d.find_path() + level.a_star_graph_3d.visualized_path.disable_visualization() + for spawn in level.enemy_spawns: + spawn.spawn_wave(upcoming_wave) + wave_started.emit(wave) + + +func set_upcoming_wave(): + var spawn_power = WaveManager.calculate_spawn_power(wave + 1, connected_players_nodes.size()) + upcoming_wave = WaveManager.generate_wave(spawn_power, level.enemy_pool) + pot = 6 + (spawn_power / 100) + + +func increase_enemy_count(): + enemies += 1 + enemy_number_changed.emit(enemies) + + +func enemy_died(): + enemies -= 1 + enemy_number_changed.emit(enemies) + for x in level.enemy_spawns: + if !x.done_spawning: + return + if enemies == 0: + end_wave() + if wave >= 20: + win_game() + + +func damage_goal(penalty): + enemies -= 1 + enemy_number_changed.emit(enemies) + objective_health -= penalty + base_took_damage.emit(objective_health) + if objective_health <= 0: + lose_game() + elif enemies == 0: + end_wave() + if wave >= 20: + win_game() + + +func end_wave(): + for peer_id in connected_players_nodes: + connected_players_nodes[peer_id].currency += pot / connected_players_nodes.size() + level.a_star_graph_3d.visualized_path.enable_visualization() + wave_finished.emit(wave) + set_upcoming_wave() + if wave < 20: + for key in connected_players_nodes: + connected_players_nodes[key].hud.set_upcoming_wave(upcoming_wave) + + +func remove_player(peer_id): + connected_players_nodes[peer_id].queue_free() + connected_players_nodes.erase(peer_id) + + +func start_game(): + game_active = true + level.a_star_graph_3d.make_grid() + level.a_star_graph_3d.find_path() + set_upcoming_wave() + for peer_id in connected_players_nodes: + connected_players_nodes[peer_id].currency = 20 + connected_players_nodes[peer_id].hud.set_upcoming_wave(upcoming_wave) + game_started.emit() + + +func restart_game(): + #implement game reloading system + for peer_id in connected_players_nodes: + connected_players_nodes[peer_id].queue_free() + connected_players_nodes.clear() + level.queue_free() + enemies = 0 + objective_health = 100 + wave = 0 + spawn_level() + game_restarted.emit() + pass + + +func lose_game(): + if game_active == false: + return + game_active = false + var menu = lose_game_scene.instantiate() + add_child(menu) + lost_game.emit() + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + for peer_id in connected_players_nodes: + connected_players_nodes[peer_id].pause() + + +func win_game(): + if game_active == false: + return + game_active = false + var menu = won_game_scene.instantiate() + add_child(menu) + won_game.emit() + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + for peer_id in connected_players_nodes: + connected_players_nodes[peer_id].pause() + + +func quit_to_desktop(): + multiplayer.multiplayer_peer.close() + multiplayer.multiplayer_peer = null + get_tree().quit() + + +func scene_switch_main_menu(): + multiplayer.multiplayer_peer.close() + multiplayer.multiplayer_peer = null + for node in get_children(): + node.queue_free() + get_tree().change_scene_to_file(main_menu_scene_path) + + +func scene_switch_to_multiplayer_lobby(): + get_tree().change_scene_to_file(multiplayer_lobby_scene_path) + + +func scene_switch_to_singleplayer_lobby(): + get_tree().change_scene_to_file(singleplayer_lobby_scene_path) diff --git a/Scripts/ground_enemy_controller.gd b/Scripts/ground_enemy_controller.gd new file mode 100644 index 0000000..5ac802d --- /dev/null +++ b/Scripts/ground_enemy_controller.gd @@ -0,0 +1,2 @@ +extends Node3D +class_name GroundEnemyController diff --git a/Scripts/health.gd b/Scripts/health.gd new file mode 100644 index 0000000..e5942b6 --- /dev/null +++ b/Scripts/health.gd @@ -0,0 +1,27 @@ +extends Node +class_name Health + +signal health_depleted +signal health_changed(health) + +@export var damage_particle_scene : PackedScene + +@export var max_health := 10 +var current_health + +func take_damage(damage): + var marker = damage_particle_scene.instantiate() + get_tree().root.add_child(marker) + marker.set_number(damage) + marker.position = get_parent().global_position + Vector3.UP + + current_health -= damage + health_changed.emit(current_health) + if current_health <= 0: + health_depleted.emit() + + +func heal_damage(healing): + current_health += healing + if current_health > max_health: + current_health = max_health diff --git a/Scripts/hitbox.gd b/Scripts/hitbox.gd new file mode 100644 index 0000000..a13f098 --- /dev/null +++ b/Scripts/hitbox.gd @@ -0,0 +1,13 @@ +extends CollisionShape3D +class_name Hitbox + +signal took_damage(amount) + + +func damage(amount): + networked_damage.rpc(amount) + + +@rpc("any_peer","call_local") +func networked_damage(amount): + took_damage.emit(amount) diff --git a/Scripts/interact_button.gd b/Scripts/interact_button.gd new file mode 100644 index 0000000..3c3dd63 --- /dev/null +++ b/Scripts/interact_button.gd @@ -0,0 +1,10 @@ +extends StaticBody3D +class_name InteractButton + +signal button_interacted(value) + +@export var button_press_value := 0 +@export var press_cost := 0 + +func press(): + button_interacted.emit(button_press_value) diff --git a/Scripts/inventory.gd b/Scripts/inventory.gd new file mode 100644 index 0000000..8b00c69 --- /dev/null +++ b/Scripts/inventory.gd @@ -0,0 +1,66 @@ +extends Node +class_name Inventory + +signal item_added(item) +signal item_removed(item) + +@export var max_size := 0 +var contents : Array[Card] = [] +var selected_index := 0 +var selected_item : Card : + get: + return contents[selected_index] + set(_value): + return + + +func add(card : Card) -> bool: + if card != null and contents.size() < max_size or max_size == 0: + contents.append(card) + item_added.emit(card) + networked_add.rpc(Data.cards.find(card)) + return true + return false + + +func remove_at(index : int) -> Card: + if contents.size() <= 0: + return null + var card = contents[index] + contents.remove_at(index) + if selected_index >= contents.size() and selected_index > 0: + selected_index -= 1 + item_removed.emit(card) + networked_remove_at.rpc(index) + return card + + +func remove() -> Card: + return remove_at(selected_index) + + +func increment_selected(): + if contents.size() > 0: + selected_index += 1 + if selected_index >= contents.size(): + selected_index = 0 + + +func decrement_selected(): + if contents.size() > 0: + selected_index -= 1 + if selected_index < 0: + selected_index = contents.size() - 1 + + +@rpc("reliable") +func networked_add(value): + contents.append(Data.cards[value]) + item_added.emit(Data.cards[value]) + + +@rpc("reliable") +func networked_remove_at(value): + var item = contents[value] + contents.remove_at(value) + item_removed.emit(item) diff --git a/Scripts/item_card.gd b/Scripts/item_card.gd new file mode 100644 index 0000000..79482fa --- /dev/null +++ b/Scripts/item_card.gd @@ -0,0 +1,14 @@ +extends StaticBody3D +class_name ItemCard + +@export var card : Card + + +func pick_up() -> Card: + queue_free() + networked_pick_up.rpc() + return card + + +@rpc func networked_pick_up(): + queue_free() diff --git a/Scripts/level.gd b/Scripts/level.gd new file mode 100644 index 0000000..26cdd9b --- /dev/null +++ b/Scripts/level.gd @@ -0,0 +1,8 @@ +extends GridMap +class_name Level + +@export var enemy_pool : Array[Enemy] +@export var player_spawns : Array[Node3D] = [] +@export var enemy_spawns : Array[Node3D] = [] +@export var enemy_goals : Array[Node3D] = [] +@export var a_star_graph_3d : AStarGraph3D diff --git a/Scripts/lifebar_segment.gd b/Scripts/lifebar_segment.gd new file mode 100644 index 0000000..ced206d --- /dev/null +++ b/Scripts/lifebar_segment.gd @@ -0,0 +1,20 @@ +extends Control +class_name LivesBarSegment + +var lives_left := 6 + +func take_life(value : int): + for x in value: + lives_left -= 1 + if lives_left == 5: + $AnimationPlayer.play("lose1") + if lives_left == 4: + $AnimationPlayer2.play("lose2") + if lives_left == 3: + $AnimationPlayer3.play("lose3") + if lives_left == 2: + $AnimationPlayer4.play("lose4") + if lives_left == 1: + $AnimationPlayer5.play("lose5") + if lives_left == 0: + $AnimationPlayer6.play("lose6") diff --git a/Scripts/lives_bar.gd b/Scripts/lives_bar.gd new file mode 100644 index 0000000..fb91ce2 --- /dev/null +++ b/Scripts/lives_bar.gd @@ -0,0 +1,10 @@ +extends TextureRect + +@export var segments : Array[LivesBarSegment] +var lives := 120.0 + + +func take_life(): + var segment_to_animate = ceil(lives / 6.0) - 1 + lives -= 1 + segments[segment_to_animate].take_life(1) diff --git a/Scripts/loadout_editor.gd b/Scripts/loadout_editor.gd new file mode 100644 index 0000000..3a4145f --- /dev/null +++ b/Scripts/loadout_editor.gd @@ -0,0 +1,15 @@ +extends Panel +class_name LoadoutEditor + +signal character_selected(character) + +func _ready() -> void: + for i in Data.characters.size(): + var button = Button.new() + button.text = Data.characters[i].hero_name + button.pressed.connect(set_character.bind(i)) + $HBoxContainer.add_child(button) + + +func set_character(i: int): + character_selected.emit(i) diff --git a/Scripts/lost_game_screen.gd b/Scripts/lost_game_screen.gd new file mode 100644 index 0000000..f1d7034 --- /dev/null +++ b/Scripts/lost_game_screen.gd @@ -0,0 +1,10 @@ +extends Control + + +func _on_quit_button_pressed() -> void: + Game.quit_to_desktop() + + +func _on_restart_button_pressed() -> void: + Game.restart_game() + queue_free() diff --git a/Scripts/main_menu.gd b/Scripts/main_menu.gd new file mode 100644 index 0000000..325723a --- /dev/null +++ b/Scripts/main_menu.gd @@ -0,0 +1,46 @@ +extends Control + +var confirmation_popup_scene = preload("res://Scenes/Menus/confirmation_popup.tscn") +var text_input_popup_scene = preload("res://Scenes/Menus/text_input_popup.tscn") +var multiplayer_lobby_scene_path = "res://Scenes/multiplayer_lobby.tscn" +var options_menu_scene = preload("res://Scenes/Menus/options_menu.tscn") + +func _ready() -> void: + $ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = Data.player_profile.display_name + + +func _on_display_name_edit_pressed() -> void: + var popup = text_input_popup_scene.instantiate() as TextInputPopup + popup.set_popup(Data.player_profile.display_name, "Display Name", "Confirm") + popup.completed.connect(change_profile_display_name) + add_child(popup) + + +func change_profile_display_name(display_name): + $ProfileEditor/VBoxContainer/HBoxContainer/DisplayName.text = display_name + Data.player_profile.set_display_name(display_name) + + +func _on_quit_button_pressed() -> void: + var popup = confirmation_popup_scene.instantiate() as ConfirmationPopup + popup.set_popup("Are you sure you want to quit?", "Yes", "No") + popup.completed.connect(quit_game) + add_child(popup) + + +func quit_game(confirmation): + if confirmation: + get_tree().quit() + + +func _on_play_button_pressed() -> void: + Game.scene_switch_to_singleplayer_lobby() + + +func _on_options_button_pressed() -> void: + var menu = options_menu_scene.instantiate() + add_child(menu) + + +func _on_multiplayer_button_pressed() -> void: + Game.scene_switch_to_multiplayer_lobby() diff --git a/Scripts/minimap_cam.gd b/Scripts/minimap_cam.gd new file mode 100644 index 0000000..819f46a --- /dev/null +++ b/Scripts/minimap_cam.gd @@ -0,0 +1,10 @@ +extends Camera3D +class_name MinimapCamera3D + +@export var anchor : Node3D +@export var face_north : bool + +func _process(_delta: float) -> void: + global_position = anchor.global_position + (Vector3.UP * 100) + if face_north: + rotation.y = anchor.rotation.y diff --git a/Scripts/multiplayer_lobby.gd b/Scripts/multiplayer_lobby.gd new file mode 100644 index 0000000..b6b952b --- /dev/null +++ b/Scripts/multiplayer_lobby.gd @@ -0,0 +1,124 @@ +extends Control +class_name MultiplayerLobby + +signal player_connected(peer_id, player_profile) +signal player_disconnected(peer_id) +signal disconnected_from_server + +const SERVER_PORT := 58008 +const MAX_PLAYERS := 4 + +var enet_peer = ENetMultiplayerPeer.new() + +@export var server_form : ServerForm +@export var scoreboard : Scoreboard +@export var loadout_editor : LoadoutEditor +@export var chatbox : Chatbox +var alert_popup_scene = preload("res://Scenes/Menus/alert_popup.tscn") +var connected_players_profiles = {} + + +func _ready(): + multiplayer.peer_connected.connect(_on_player_connected) + multiplayer.peer_disconnected.connect(_on_player_disconnected) + multiplayer.connected_to_server.connect(_on_connection_succeeded) + multiplayer.connection_failed.connect(_on_connection_failed) + multiplayer.server_disconnected.connect(_on_server_disconnected) + + +func _on_player_connected(peer_id): + add_player.rpc_id(peer_id, Data.player_profile.to_dict()) + if multiplayer.get_unique_id() == 1: + print("Player connected with id: " + str(peer_id)) + + +func _on_player_disconnected(peer_id): + connected_players_profiles.erase(peer_id) + player_disconnected.emit(peer_id) + + +func _on_connection_succeeded(): + setup_game(multiplayer.get_unique_id()) + + +func _on_connection_failed(): + multiplayer.multiplayer_peer = null + var popup = alert_popup_scene.instantiate() as AlertPopup + popup.set_popup("Unable to connect to server", "OK") + add_child(popup) + + +func _on_server_disconnected(): + multiplayer.multiplayer_peer = null + disconnected_from_server.emit() + + +func create_server() -> void: + enet_peer.create_server(SERVER_PORT, MAX_PLAYERS) + multiplayer.multiplayer_peer = enet_peer + setup_game(1) + + +func setup_game(peer_id): + player_disconnected.connect(Game.remove_player) + Game.spawn_level() + scoreboard.all_players_ready.connect(start_game) + Game.game_restarted.connect(setup_the_ui) + setup_the_ui() + chatbox.username = Data.player_profile.display_name + Data.player_profile.display_name_changed.connect(chatbox.change_username) + loadout_editor.character_selected.connect(Data.player_profile.set_preferred_class) + loadout_editor.character_selected.connect(edit_player_profile) + connected_players_profiles[peer_id] = Data.player_profile + player_connected.emit(peer_id, Data.player_profile) + + +func setup_the_ui(): + scoreboard.unready_all_players() + scoreboard.set_visible(true) + loadout_editor.set_visible(true) + $ReadyButton.set_visible(true) + chatbox.set_visible(true) + + +func connect_to_server() -> void: + var ip = server_form.get_server_ip() if server_form.get_server_ip() else "localhost" + var port = server_form.get_server_port() if server_form.get_server_port() else str(SERVER_PORT) + enet_peer.create_client(ip, int(port)) + multiplayer.multiplayer_peer = enet_peer + + +func ready_player(): + var peer_id = multiplayer.get_unique_id() + networked_ready_player.rpc(peer_id) + + +func start_game(): + enet_peer.refuse_new_connections = true + Game.spawn_players(connected_players_profiles.keys(), connected_players_profiles, chatbox.opened, chatbox.closed) + scoreboard.set_visible(false) + loadout_editor.set_visible(false) + + +func edit_player_profile(_argument): + var profile_dict = Data.player_profile.to_dict() + networked_edit_player_profile.rpc(multiplayer.get_unique_id(), profile_dict) + + +@rpc("any_peer", "reliable", "call_local") +func networked_edit_player_profile(peer_id, new_profile_dict): + connected_players_profiles[peer_id].set_display_name(new_profile_dict["display_name"]) + connected_players_profiles[peer_id].set_preferred_class(new_profile_dict["preferred_class"]) + + +@rpc("any_peer","reliable") +func add_player(new_player_profile_dict): + var new_player_peer_id = multiplayer.get_remote_sender_id() + var new_player_profile = PlayerProfile.from_dict(new_player_profile_dict) + connected_players_profiles[new_player_peer_id] = new_player_profile + player_connected.emit(new_player_peer_id, new_player_profile) + + +@rpc("any_peer", "reliable", "call_local") +func networked_ready_player(peer_id): + scoreboard.set_player_ready_state(peer_id, true) diff --git a/Scripts/on_top_camera.gd b/Scripts/on_top_camera.gd new file mode 100644 index 0000000..c77a5c5 --- /dev/null +++ b/Scripts/on_top_camera.gd @@ -0,0 +1,7 @@ +extends Camera3D + +@export var clone_camera : Node3D + +func _process(_delta: float) -> void: + global_position = clone_camera.global_position + global_rotation = clone_camera.global_rotation diff --git a/Scripts/options_menu.gd b/Scripts/options_menu.gd new file mode 100644 index 0000000..aaf22c4 --- /dev/null +++ b/Scripts/options_menu.gd @@ -0,0 +1,123 @@ +extends Control +class_name OptionsMenu + +@export var look_sens_slider : HSlider +@export var look_sens_input : SpinBox +@export var toggle_sprint_checkbox : CheckButton +@export var vsync_dropdown : OptionButton +@export var aa_dropdown : OptionButton +@export var window_dropdown : OptionButton +@export var invert_lookY : CheckButton +@export var invert_lookX : CheckButton +@export var fov_input : SpinBox +@export var fov_slider : HSlider +var keybind_boxes = [] +var keybind_buttons = {} +var key_event +var selected_button +var selected_button_button +var listening_for_key := false + +func _ready(): + look_sens_slider.value = Data.preferences.mouse_sens + look_sens_input.value = Data.preferences.mouse_sens + toggle_sprint_checkbox.button_pressed = Data.preferences.toggle_sprint + vsync_dropdown.selected = Data.preferences.vsync_mode + aa_dropdown.selected = Data.preferences.aa_mode + invert_lookY.button_pressed = Data.preferences.invert_lookY + invert_lookX.button_pressed = Data.preferences.invert_lookX + fov_input.value = Data.preferences.hfov + fov_slider.value = Data.preferences.hfov + + for index in Data.keymaps.size(): + var map = Data.keymaps[index] + var button = Button.new() + button.text = map.title + button.pressed.connect(set_keymap.bind(index)) + $VBoxContainer/TabContainer/Keybinds/HBoxContainer.add_child(button) + load_keybind_labels() + + +func set_keymap(keymap_index): + Data.player_keymap = Data.keymaps[keymap_index] + Data.player_keymap.apply() + load_keybind_labels() + + +func load_keybind_labels(): + for box in keybind_boxes: + box.queue_free() + keybind_boxes.clear() + for action in InputMap.get_actions(): + if !action.begins_with("ui_"): + var box = HBoxContainer.new() + var alabel = Label.new() + var elabel = Button.new() + alabel.text = action + if InputMap.action_get_events(action).size() > 0: + elabel.text = InputMap.action_get_events(action)[0].as_text() + elabel.size_flags_horizontal += Control.SIZE_EXPAND + alabel.size_flags_horizontal += Control.SIZE_EXPAND + alabel.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER + alabel.size_flags_stretch_ratio = 2.0 + #elabel.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT + box.add_child(alabel) + box.add_child(elabel) + elabel.pressed.connect(_on_keybind_button_pressed.bind(elabel)) + keybind_buttons[elabel] = action + $VBoxContainer/TabContainer/Keybinds/ScrollContainer/VBoxContainer.add_child(box) + keybind_boxes.append(box) + + +func _on_cancel_pressed() -> void: + queue_free() + + +func _on_confirm_pressed() -> void: + Data.preferences.mouse_sens = look_sens_slider.value + Data.preferences.toggle_sprint = toggle_sprint_checkbox.button_pressed + Data.preferences.vsync_mode = vsync_dropdown.selected + Data.preferences.aa_mode = aa_dropdown.selected + Data.preferences.windowed_mode = window_dropdown.selected + Data.preferences.invert_lookY = invert_lookY.button_pressed + Data.preferences.invert_lookX = invert_lookX.button_pressed + Data.preferences.apply_graphical_settings(get_viewport()) + Data.preferences.save_profile_to_disk() + Data.player_keymap.save_profile_to_disk() + queue_free() + + +func _on_mouse_sens_spin_box_value_changed(value: float) -> void: + look_sens_slider.value = value + + +func _on_mouse_sens_h_slider_value_changed(value: float) -> void: + look_sens_input.value = value + + +func _on_fov_spin_box_value_changed(value: float) -> void: + if value < 40.0: + value = 40.0 + if value > 160.0: + value = 160.0 + fov_slider.value = value + Data.preferences.hfov = value + + +func _on_fov_h_slider_value_changed(value: float) -> void: + fov_input.value = value + Data.preferences.hfov = value + + +func _on_keybind_button_pressed(value: Button) -> void: + selected_button = keybind_buttons[value] + selected_button_button = value + listening_for_key = true + + +func _input(event: InputEvent) -> void: + if listening_for_key and (event is InputEventKey or event is InputEventMouseButton or event is InputEventJoypadButton): + key_event = event + listening_for_key = false + Data.player_keymap.replace_action_event(selected_button, key_event) + selected_button_button.text = key_event.as_text() diff --git a/Scripts/path_visual_thing.gd b/Scripts/path_visual_thing.gd new file mode 100644 index 0000000..ea6eac7 --- /dev/null +++ b/Scripts/path_visual_thing.gd @@ -0,0 +1,16 @@ +extends PathFollow3D + +@export var speed = 0.5 +@export var world_model : Node3D +@export var minimap_model : Node3D + +func _process(delta: float) -> void: + progress += speed * delta + + +func set_world_visible(value: bool): + world_model.set_visible(value) + + +func set_minimap_visible(value: bool): + minimap_model.set_visible(value) diff --git a/Scripts/pause_menu.gd b/Scripts/pause_menu.gd new file mode 100644 index 0000000..8b61f95 --- /dev/null +++ b/Scripts/pause_menu.gd @@ -0,0 +1,46 @@ +extends Control +class_name PauseMenu + +signal closed + +var options_menu_scene = preload("res://Scenes/Menus/options_menu.tscn") +var confirmation_popup_scene = preload("res://Scenes/Menus/confirmation_popup.tscn") + +func _unhandled_input(event: InputEvent) -> void: + if event.is_action_pressed("Pause"): + accept_event() + _on_resume_pressed() + + +func _on_resume_pressed() -> void: + closed.emit() + queue_free() + + +func _on_options_pressed() -> void: + var menu = options_menu_scene.instantiate() + add_child(menu) + + +func _on_quit_to_main_menu_pressed() -> void: + var popup = confirmation_popup_scene.instantiate() as ConfirmationPopup + popup.set_popup("Are you sure you want to quit and return to main menu?", "Yes", "No") + popup.completed.connect(return_to_menu) + add_child(popup) + + +func return_to_menu(confirmation): + if confirmation: + Game.scene_switch_main_menu() + + +func _on_quit_to_desktop_pressed() -> void: + var popup = confirmation_popup_scene.instantiate() as ConfirmationPopup + popup.set_popup("Are you sure you want to quit?", "Yes", "No") + popup.completed.connect(quit_game) + add_child(popup) + + +func quit_game(confirmation): + if confirmation: + Game.quit_to_desktop() diff --git a/Scripts/scoreboard.gd b/Scripts/scoreboard.gd new file mode 100644 index 0000000..266eac7 --- /dev/null +++ b/Scripts/scoreboard.gd @@ -0,0 +1,46 @@ +extends PanelContainer +class_name Scoreboard + +signal all_players_ready + +var entry_scene = preload("res://Scenes/UI/scoreboard_entry.tscn") +var entries = {} + +func _ready() -> void: + $VBoxContainer/DummyEntry1.queue_free() + $VBoxContainer/DummyEntry2.queue_free() + $VBoxContainer/DummyEntry3.queue_free() + + +func get_player_entry(peer_id) -> ScoreboardEntry: + return entries[peer_id] + + +func set_player_ready_state(peer_id: int, state: bool): + entries[peer_id].set_ready_state(state) + for id in entries: + if !entries[id].get_ready_state(): + return + all_players_ready.emit() + unready_all_players() + + +func unready_all_players(): + for peer_id in entries: + entries[peer_id].set_ready_state(false) + + +func add_player(peer_id: int, player_profile: PlayerProfile): + var entry = entry_scene.instantiate() as ScoreboardEntry + entry.name = str(peer_id) + entry.set_display_name("", player_profile.get_display_name()) + entry.set_character(0, player_profile.get_preferred_class()) + player_profile.display_name_changed.connect(entry.set_display_name) + player_profile.preferred_class_changed.connect(entry.set_character) + entries[peer_id] = entry + $VBoxContainer.add_child(entry) + + +func remove_player(peer_id: int): + entries[peer_id].queue_free() + entries.erase(peer_id) diff --git a/Scripts/scoreboard_entry.gd b/Scripts/scoreboard_entry.gd new file mode 100644 index 0000000..7a27956 --- /dev/null +++ b/Scripts/scoreboard_entry.gd @@ -0,0 +1,28 @@ +extends HBoxContainer +class_name ScoreboardEntry + +var display_name: String +var character: int +var ready_state: bool + + +func set_display_name(_old_name: String, new_name: String): + display_name = new_name + $DisplayName.text = new_name +func get_display_name() -> String: + return display_name + +func set_character(_old_class: int, new_class: int): + character = new_class + $CharacterName.text = Data.characters[new_class].hero_name +func get_character() -> int: + return character + +func set_ready_state(state: bool): + ready_state = state + if state: + $TextureRect.texture.region = Rect2(32, 0, 32, 32) + else: + $TextureRect.texture.region = Rect2(0, 0, 32, 32) +func get_ready_state() -> bool: + return ready_state diff --git a/Scripts/server_form.gd b/Scripts/server_form.gd new file mode 100644 index 0000000..6998f97 --- /dev/null +++ b/Scripts/server_form.gd @@ -0,0 +1,18 @@ +extends PanelContainer +class_name ServerForm + +signal connect_button_pressed +signal host_button_pressed + + +func _on_host_pressed() -> void: + host_button_pressed.emit() + queue_free() +func _on_connect_pressed() -> void: + connect_button_pressed.emit() + queue_free() + +func get_server_ip() -> String: + return $VBoxContainer/HBoxContainer/ServerIP.text +func get_server_port() -> String: + return $VBoxContainer/HBoxContainer2/ServerPort.text diff --git a/Scripts/singleplayer_lobby.gd b/Scripts/singleplayer_lobby.gd new file mode 100644 index 0000000..0ad81c2 --- /dev/null +++ b/Scripts/singleplayer_lobby.gd @@ -0,0 +1,41 @@ +extends Control + +@export var scoreboard : Scoreboard +@export var loadout_editor : LoadoutEditor +@export var chatbox : Chatbox +var connected_players_profiles = {} + + +func _ready() -> void: + setup_game() + + +func setup_game(): + Game.spawn_level() + scoreboard.add_player(1, Data.player_profile) + scoreboard.all_players_ready.connect(start_game) + Game.game_restarted.connect(setup_the_ui) + setup_the_ui() + chatbox.username = Data.player_profile.display_name + Data.player_profile.display_name_changed.connect(chatbox.change_username) + loadout_editor.character_selected.connect(Data.player_profile.set_preferred_class) + loadout_editor.character_selected.connect(edit_player_profile) + connected_players_profiles[1] = Data.player_profile + + +func edit_player_profile(_argument): + var profile_dict = Data.player_profile.to_dict() + + +func start_game(): + Game.spawn_players(connected_players_profiles.keys(), connected_players_profiles, chatbox.opened, chatbox.closed) + scoreboard.set_visible(false) + loadout_editor.set_visible(false) + + +func setup_the_ui(): + scoreboard.unready_all_players() + scoreboard.set_visible(true) + loadout_editor.set_visible(true) + $ReadyButton.set_visible(true) + chatbox.set_visible(true) diff --git a/Scripts/target_dummy.gd b/Scripts/target_dummy.gd new file mode 100644 index 0000000..bb94697 --- /dev/null +++ b/Scripts/target_dummy.gd @@ -0,0 +1,14 @@ +extends EnemyController +class_name Dummy + +func _on_health_health_depleted() -> void: + $Dog/Health.max_health = stats.health + $Dog/Health.current_health = stats.health + $Dog/SubViewport/ProgressBar.max_value = stats.health + $Dog/SubViewport/ProgressBar.value = stats.health + + +func _physics_process(delta: float) -> void: + progress += movement_speed * delta + if progress_ratio >= 1: + progress_ratio = 0 diff --git a/Scripts/text_input_popup.gd b/Scripts/text_input_popup.gd new file mode 100644 index 0000000..85e2a52 --- /dev/null +++ b/Scripts/text_input_popup.gd @@ -0,0 +1,14 @@ +extends PanelContainer +class_name TextInputPopup + +signal completed(outcome) + +func set_popup(prompt_text, placeholder_text, confirm_text): + $VBoxContainer/LineEdit.text = prompt_text + $VBoxContainer/LineEdit.placeholder_text = placeholder_text + $VBoxContainer/Button.text = confirm_text + + +func _on_button_pressed() -> void: + completed.emit($VBoxContainer/LineEdit.text) + queue_free() diff --git a/Scripts/tower_base.gd b/Scripts/tower_base.gd new file mode 100644 index 0000000..586a398 --- /dev/null +++ b/Scripts/tower_base.gd @@ -0,0 +1,39 @@ +extends StaticBody3D +class_name TowerBase + +@export var inventory : Inventory +@export var block : CSGBox3D +@export var collider : CollisionShape3D +@export var minimap_icon : Sprite3D + +var tower = null +var has_card : bool : + set(_value): + return + get: + return inventory.contents.size() != 0 + + +func add_card(card: Card) -> bool: + var result = inventory.add(card) + if result: + tower = card.turret.instantiate() as Tower + tower.stats = card.tower_stats + minimap_icon.modulate = Color.RED + add_child(tower) + return result + + +func remove_card() -> Card: + tower.queue_free() + tower = null + minimap_icon.modulate = Color.GREEN + return inventory.remove() + + +func set_material(value: StandardMaterial3D): + block.material = value + + +func toggle_collision(): + collider.disabled = !collider.disabled diff --git a/Scripts/visualized_path.gd b/Scripts/visualized_path.gd new file mode 100644 index 0000000..ecf2a80 --- /dev/null +++ b/Scripts/visualized_path.gd @@ -0,0 +1,26 @@ +extends Path3D +class_name VisualizedPath + +var visual_scene = preload("res://Scenes/path_visual_thing.tscn") +var length := 0.0 +var visualizer_points = [] + +func spawn_visualizer_points() -> void: + var new_length = curve.get_baked_length() + for x in new_length - length: + var point = visual_scene.instantiate() + visualizer_points.append(point) + add_child(point) + length = new_length + for x in visualizer_points.size(): + visualizer_points[x].progress_ratio = float(x) / visualizer_points.size() + + +func disable_visualization(): + for x in visualizer_points: + x.set_world_visible(false) + + +func enable_visualization(): + for x in visualizer_points: + x.set_world_visible(true) diff --git a/Scripts/wave_manager.gd b/Scripts/wave_manager.gd new file mode 100644 index 0000000..5705622 --- /dev/null +++ b/Scripts/wave_manager.gd @@ -0,0 +1,21 @@ +extends Node + + +func calculate_spawn_power(wave_number : int, number_of_players : int) -> int: + return 20 + (50 * number_of_players) + (30 * wave_number) + + +func generate_wave(spawn_power : int, spawn_pool : Array[Enemy]) -> Dictionary: + var wave = {} + #var sp_used = 0 + var enemy_types = randi_range(1, 5) + var enemy_choices = spawn_pool.duplicate() + var sp_allotment = spawn_power / enemy_types + for x in enemy_types: + var choice = enemy_choices.pick_random() + enemy_choices.erase(choice) + if sp_allotment / choice.spawn_power > 0: + wave[choice] = sp_allotment / choice.spawn_power + #sp_used += wave[choice] * choice.spawn_power + #print("tried to generate wave with " + str(spawn_power) + " spawn power, used " + str(sp_used)) + return wave diff --git a/Scripts/won_game_screen.gd b/Scripts/won_game_screen.gd new file mode 100644 index 0000000..e364d61 --- /dev/null +++ b/Scripts/won_game_screen.gd @@ -0,0 +1,10 @@ +extends Control + + +func _on_quit_button_pressed() -> void: + Game.quit_to_desktop() + + +func _on_play_button_pressed() -> void: + Game.restart_game() + queue_free() diff --git a/Worlds/GreenPlanet/Decorations/tree.tscn b/Worlds/GreenPlanet/Decorations/tree.tscn new file mode 100644 index 0000000..26bd3a4 --- /dev/null +++ b/Worlds/GreenPlanet/Decorations/tree.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=3 format=3 uid="uid://iohlxrso4bl8"] + +[ext_resource type="Texture2D" uid="uid://dy2ukmg6koun1" path="res://Assets/Textures/tree.png" id="1_sisdp"] +[ext_resource type="Texture2D" uid="uid://dg47vgt0uccw1" path="res://Assets/Textures/minimap_tree.png" id="2_85nm0"] + +[node name="Tree" type="Node3D"] + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.15464, 0) +pixel_size = 0.05 +alpha_cut = 1 +texture_filter = 0 +texture = ExtResource("1_sisdp") + +[node name="Sprite3D2" type="Sprite3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 2.15464, 0) +pixel_size = 0.05 +alpha_cut = 1 +texture_filter = 0 +texture = ExtResource("1_sisdp") + +[node name="Sprite3D3" type="Sprite3D" parent="."] +transform = Transform3D(7.5, 0, 0, 0, -3.27835e-07, 7.5, 0, -7.5, -3.27835e-07, 0, 5.98547, 0) +layers = 4 +texture_filter = 0 +texture = ExtResource("2_85nm0") diff --git a/Worlds/GreenPlanet/Enemies/air_enemy.tscn b/Worlds/GreenPlanet/Enemies/air_enemy.tscn new file mode 100644 index 0000000..74ff08c --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/air_enemy.tscn @@ -0,0 +1,85 @@ +[gd_scene load_steps=12 format=3 uid="uid://bjo2q6vca5qlv"] + +[ext_resource type="Script" path="res://Worlds/GreenPlanet/Enemies/air_enemy_controller.gd" id="1_lyo1o"] +[ext_resource type="Resource" uid="uid://dsgkwh3opyqtx" path="res://Worlds/GreenPlanet/Enemies/airenemy.tres" id="2_6qx4a"] +[ext_resource type="Script" path="res://Scripts/health.gd" id="3_wiose"] +[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_mhq3m"] +[ext_resource type="Script" path="res://Scripts/hitbox.gd" id="5_433ie"] +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="6_ke2c8"] +[ext_resource type="Texture2D" uid="uid://r202vo47jw1q" path="res://Assets/Textures/enemyhealth.png" id="8_77uyi"] +[ext_resource type="Script" path="res://Scripts/StatusEffector.gd" id="9_7hati"] +[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_7yfyh"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_21dgw"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_ss5ir"] +viewport_path = NodePath("SubViewport") + +[node name="Dog" type="CharacterBody3D" node_paths=PackedStringArray("status_manager") groups=["Enemies"]] +collision_layer = 4 +collision_mask = 3 +motion_mode = 1 +script = ExtResource("1_lyo1o") +stats = ExtResource("2_6qx4a") +status_manager = NodePath("StatusEffector") + +[node name="Health" type="Node" parent="."] +script = ExtResource("3_wiose") +damage_particle_scene = ExtResource("4_mhq3m") + +[node name="Hitbox" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.527022, 0) +shape = SubResource("SphereShape3D_21dgw") +script = ExtResource("5_433ie") + +[node name="Sprite3D3" type="Sprite3D" parent="."] +transform = Transform3D(1.56, 0, 0, 0, 1.56, 0, 0, 0, 1.56, 0, 0.546419, 0) +billboard = 1 +texture_filter = 0 +texture = ExtResource("6_ke2c8") + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.15918, 0) +pixel_size = 0.02 +billboard = 1 +texture_filter = 0 +texture = SubResource("ViewportTexture_ss5ir") + +[node name="Sprite3D2" type="Sprite3D" parent="."] +transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0) +layers = 4 +texture_filter = 0 +texture = ExtResource("9_7yfyh") + +[node name="StatusEffector" type="Node3D" parent="." node_paths=PackedStringArray("hbox")] +script = ExtResource("9_7hati") +hbox = NodePath("../SubViewport/HBoxContainer") + +[node name="SubViewport" type="SubViewport" parent="."] +transparent_bg = true +size = Vector2i(200, 55) +render_target_update_mode = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="SubViewport"] +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 32.0 +grow_horizontal = 2 +alignment = 1 + +[node name="ProgressBar" type="TextureProgressBar" parent="SubViewport"] +visible = false +offset_top = 36.0 +offset_right = 200.0 +offset_bottom = 236.0 +grow_horizontal = 2 +grow_vertical = 2 +step = 0.0 +value = 100.0 +fill_mode = 6 +texture_progress = ExtResource("8_77uyi") +tint_progress = Color(0, 1, 0, 1) + +[connection signal="health_changed" from="Health" to="." method="_on_health_health_changed"] +[connection signal="health_depleted" from="Health" to="." method="_on_health_health_depleted"] +[connection signal="took_damage" from="Hitbox" to="Health" method="take_damage"] diff --git a/Worlds/GreenPlanet/Enemies/air_enemy_controller.gd b/Worlds/GreenPlanet/Enemies/air_enemy_controller.gd new file mode 100644 index 0000000..a61f7eb --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/air_enemy_controller.gd @@ -0,0 +1,54 @@ +extends CharacterBody3D +class_name AirEnemyController + +signal reached_goal(penalty) +signal died + +var alive = true + +@export var stats : Enemy +@export var status_manager : StatusEffector + +var movement_speed +var progress := 0.0 +var progress_ratio := 0.0 +var destination : Node3D + +func _ready() -> void: + $Health.max_health = stats.health + $Health.current_health = stats.health + $SubViewport/ProgressBar.max_value = stats.health + $SubViewport/ProgressBar.value = stats.health + $Sprite3D3.texture = stats.sprite.duplicate() + movement_speed = stats.movement_speed + + +func damage(amount): + $Hitbox.damage(amount) + + +func _physics_process(delta: float) -> void: + progress += movement_speed * delta + velocity = global_position.direction_to(destination.global_position) * movement_speed + move_and_slide() + if global_position.distance_to(destination.global_position) <= 1.0: + reached_goal.emit(stats.penalty) + queue_free() + + +func die(): + died.emit() + queue_free() + + +func _on_health_health_depleted() -> void: + if alive: + alive = false + die() + + +func _on_health_health_changed(health) -> void: + $SubViewport/ProgressBar.value = health + var percent = float($Health.current_health) / float($Health.max_health) + $SubViewport/ProgressBar.tint_progress = Color(1 - percent, percent, 0.0) + $SubViewport/ProgressBar.set_visible(true) diff --git a/Worlds/GreenPlanet/Enemies/airenemy.tres b/Worlds/GreenPlanet/Enemies/airenemy.tres new file mode 100644 index 0000000..a68fe35 --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/airenemy.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="Enemy" load_steps=4 format=3 uid="uid://dsgkwh3opyqtx"] + +[ext_resource type="Texture2D" uid="uid://chhmkmlfrobhu" path="res://Assets/Textures/bubble.png" id="1_57rr1"] +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="1_wjbfx"] +[ext_resource type="Texture2D" uid="uid://d0vafwv4lhjji" path="res://Assets/TextureAtlases/bubble.tres" id="3_homny"] + +[resource] +script = ExtResource("1_wjbfx") +title = "bubble" +target_type = 2 +icon = ExtResource("1_57rr1") +sprite = ExtResource("3_homny") +spawn_power = 4 +health = 40 +penalty = 4 +movement_speed = 1.5 +spawn_cooldown = 1.0 diff --git a/Worlds/GreenPlanet/Enemies/airenemy2.tres b/Worlds/GreenPlanet/Enemies/airenemy2.tres new file mode 100644 index 0000000..e9c19ea --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/airenemy2.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="Enemy" load_steps=4 format=3 uid="uid://bffhb5krs5elm"] + +[ext_resource type="Texture2D" uid="uid://duywsy7jmh4u" path="res://Assets/Textures/spike.png" id="1_22o7e"] +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="1_q5r05"] +[ext_resource type="Texture2D" uid="uid://sybn6bjbj5fh" path="res://Assets/TextureAtlases/spike.tres" id="3_tbb38"] + +[resource] +script = ExtResource("1_q5r05") +title = "spike" +target_type = 2 +icon = ExtResource("1_22o7e") +sprite = ExtResource("3_tbb38") +spawn_power = 8 +health = 100 +penalty = 7 +movement_speed = 1.0 +spawn_cooldown = 1.0 diff --git a/Worlds/GreenPlanet/Enemies/dog.tres b/Worlds/GreenPlanet/Enemies/dog.tres new file mode 100644 index 0000000..a5cb129 --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/dog.tres @@ -0,0 +1,23 @@ +[gd_resource type="Resource" script_class="Enemy" load_steps=5 format=3 uid="uid://8eba45hql7bo"] + +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="1_2lqbg"] +[ext_resource type="Texture2D" uid="uid://g00wwrlxxdc5" path="res://Assets/Textures/icon_eye_dog.png" id="1_es0ht"] +[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="2_vgx18"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_n6kdu"] +resource_local_to_scene = true +atlas = ExtResource("2_vgx18") +region = Rect2(0, 0, 32, 32) + +[resource] +resource_local_to_scene = true +script = ExtResource("1_2lqbg") +title = "dog" +target_type = 1 +icon = ExtResource("1_es0ht") +sprite = SubResource("AtlasTexture_n6kdu") +spawn_power = 10 +health = 200 +penalty = 10 +movement_speed = 1.2 +spawn_cooldown = 1.2 diff --git a/Worlds/GreenPlanet/Enemies/dog_boss.tres b/Worlds/GreenPlanet/Enemies/dog_boss.tres new file mode 100644 index 0000000..f3660c3 --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/dog_boss.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="Enemy" load_steps=4 format=3 uid="uid://boik1gnpl4v0a"] + +[ext_resource type="Texture2D" uid="uid://cde0voyrwnqkl" path="res://Assets/Textures/icon_eye_dog_boss.png" id="1_2o720"] +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="1_euaab"] +[ext_resource type="Texture2D" uid="uid://ff3cys53p37j" path="res://Assets/TextureAtlases/dog_fast_boss.tres" id="2_1m62w"] + +[resource] +script = ExtResource("1_euaab") +title = "boss dog" +target_type = 1 +icon = ExtResource("1_2o720") +sprite = ExtResource("2_1m62w") +spawn_power = 100 +health = 1000 +penalty = 40 +movement_speed = 1.0 +spawn_cooldown = 1.0 diff --git a/Worlds/GreenPlanet/Enemies/dog_fast.tres b/Worlds/GreenPlanet/Enemies/dog_fast.tres new file mode 100644 index 0000000..f244db7 --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/dog_fast.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="Enemy" load_steps=4 format=3 uid="uid://cvehqh4tt28g7"] + +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="1_k5sd1"] +[ext_resource type="Texture2D" uid="uid://cv5p03aw78vwd" path="res://Assets/Textures/icon_eye_dog_fast.png" id="1_xgen5"] +[ext_resource type="Texture2D" uid="uid://dd212gh03wloa" path="res://Assets/TextureAtlases/dog_fast.tres" id="2_mkbm6"] + +[resource] +script = ExtResource("1_k5sd1") +title = "fast dog" +target_type = 1 +icon = ExtResource("1_xgen5") +sprite = ExtResource("2_mkbm6") +spawn_power = 16 +health = 100 +penalty = 4 +movement_speed = 3.5 +spawn_cooldown = 0.7 diff --git a/Worlds/GreenPlanet/Enemies/dog_heavy.tres b/Worlds/GreenPlanet/Enemies/dog_heavy.tres new file mode 100644 index 0000000..ec06072 --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/dog_heavy.tres @@ -0,0 +1,17 @@ +[gd_resource type="Resource" script_class="Enemy" load_steps=4 format=3 uid="uid://dxi17xvdlhkvc"] + +[ext_resource type="Texture2D" uid="uid://08n5jvq5tptf" path="res://Assets/Textures/icon_eye_dog_heavy.png" id="1_lck53"] +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="1_q48il"] +[ext_resource type="Texture2D" uid="uid://c0543ucoalwmi" path="res://Assets/TextureAtlases/dog_fast_heavy.tres" id="2_7nc4x"] + +[resource] +script = ExtResource("1_q48il") +title = "heavy dog" +target_type = 1 +icon = ExtResource("1_lck53") +sprite = ExtResource("2_7nc4x") +spawn_power = 14 +health = 400 +penalty = 10 +movement_speed = 0.8 +spawn_cooldown = 2.0 diff --git a/Worlds/GreenPlanet/Enemies/enemy_controller.gd b/Worlds/GreenPlanet/Enemies/enemy_controller.gd new file mode 100644 index 0000000..76b24aa --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/enemy_controller.gd @@ -0,0 +1,48 @@ +extends PathFollow3D +class_name EnemyController + +signal reached_goal(penalty) +signal died + +var alive = true + +@export var stats : Enemy +@export var status_manager : StatusEffector +var movement_speed + +func _ready() -> void: + $Dog/Health.max_health = stats.health + $Dog/Health.current_health = stats.health + $Dog/SubViewport/ProgressBar.max_value = stats.health + $Dog/SubViewport/ProgressBar.value = stats.health + $Dog/DirectionSprite.texture = stats.sprite.duplicate() + movement_speed = stats.movement_speed + + +func damage(amount): + $Dog/Hitbox.damage(amount) + + +func _physics_process(delta: float) -> void: + progress += movement_speed * delta + if progress_ratio >= 1: + reached_goal.emit(stats.penalty) + queue_free() + + +func die(): + died.emit() + queue_free() + + +func _on_health_health_depleted() -> void: + if alive: + alive = false + die() + + +func _on_health_health_changed(health) -> void: + $Dog/SubViewport/ProgressBar.value = health + var percent = float($Dog/Health.current_health) / float($Dog/Health.max_health) + $Dog/SubViewport/ProgressBar.tint_progress = Color(1 - percent, percent, 0.0) + $Dog/SubViewport/ProgressBar.set_visible(true) diff --git a/Worlds/GreenPlanet/Enemies/land_enemy.tscn b/Worlds/GreenPlanet/Enemies/land_enemy.tscn new file mode 100644 index 0000000..2b01464 --- /dev/null +++ b/Worlds/GreenPlanet/Enemies/land_enemy.tscn @@ -0,0 +1,93 @@ +[gd_scene load_steps=14 format=3 uid="uid://b0nady5xm88bo"] + +[ext_resource type="Script" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_fwsjt"] +[ext_resource type="Script" path="res://Scripts/hitbox.gd" id="2_j8yin"] +[ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="2_o7jmg"] +[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Worlds/GreenPlanet/Enemies/dog.tres" id="2_sswqn"] +[ext_resource type="Script" path="res://Scripts/health.gd" id="2_swu53"] +[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="3_naknq"] +[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_tn1tu"] +[ext_resource type="Texture2D" uid="uid://r202vo47jw1q" path="res://Assets/Textures/enemyhealth.png" id="8_5ba7s"] +[ext_resource type="Texture2D" uid="uid://b1fn60m6xfcsq" path="res://Assets/Textures/minimap_enemy.png" id="9_f8btv"] +[ext_resource type="Script" path="res://Scripts/StatusEffector.gd" id="10_txouh"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_21dgw"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_75ly7"] +resource_local_to_scene = true +atlas = ExtResource("3_naknq") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="ViewportTexture" id="ViewportTexture_4tj6k"] +viewport_path = NodePath("Dog/SubViewport") + +[node name="PathFollow3D" type="PathFollow3D" node_paths=PackedStringArray("status_manager") groups=["Enemies"]] +loop = false +script = ExtResource("1_fwsjt") +stats = ExtResource("2_sswqn") +status_manager = NodePath("Dog/StatusEffector") + +[node name="Dog" type="CharacterBody3D" parent="."] +collision_layer = 4 +collision_mask = 3 + +[node name="Health" type="Node" parent="Dog"] +script = ExtResource("2_swu53") +damage_particle_scene = ExtResource("4_tn1tu") + +[node name="Hitbox" type="CollisionShape3D" parent="Dog"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.527022, 0) +shape = SubResource("SphereShape3D_21dgw") +script = ExtResource("2_j8yin") + +[node name="DirectionSprite" parent="Dog" instance=ExtResource("2_o7jmg")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.642479, 0) +pixel_size = 0.04 +texture = SubResource("AtlasTexture_75ly7") + +[node name="Sprite3D" type="Sprite3D" parent="Dog"] +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.20821, 0) +pixel_size = 0.02 +billboard = 1 +texture_filter = 0 +texture = SubResource("ViewportTexture_4tj6k") + +[node name="Sprite3D2" type="Sprite3D" parent="Dog"] +transform = Transform3D(2, 0, 0, 0, -8.74228e-08, 2, 0, -2, -8.74228e-08, 0, 1.40824, 0) +layers = 4 +texture_filter = 0 +texture = ExtResource("9_f8btv") + +[node name="StatusEffector" type="Node3D" parent="Dog" node_paths=PackedStringArray("hbox")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.18114, 0) +script = ExtResource("10_txouh") +hbox = NodePath("../SubViewport/HBoxContainer") + +[node name="SubViewport" type="SubViewport" parent="Dog"] +transparent_bg = true +size = Vector2i(200, 55) +render_target_update_mode = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="Dog/SubViewport"] +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 32.0 +grow_horizontal = 2 +alignment = 1 + +[node name="ProgressBar" type="TextureProgressBar" parent="Dog/SubViewport"] +visible = false +offset_top = 36.0 +offset_right = 200.0 +offset_bottom = 236.0 +grow_horizontal = 2 +grow_vertical = 2 +step = 0.0 +value = 100.0 +fill_mode = 6 +texture_progress = ExtResource("8_5ba7s") +tint_progress = Color(0, 1, 0, 1) + +[connection signal="health_changed" from="Dog/Health" to="." method="_on_health_health_changed"] +[connection signal="health_depleted" from="Dog/Health" to="." method="_on_health_health_depleted"] +[connection signal="took_damage" from="Dog/Hitbox" to="Dog/Health" method="take_damage"] diff --git a/Worlds/GreenPlanet/Levels/first_level.tscn b/Worlds/GreenPlanet/Levels/first_level.tscn new file mode 100644 index 0000000..6926547 --- /dev/null +++ b/Worlds/GreenPlanet/Levels/first_level.tscn @@ -0,0 +1,566 @@ +[gd_scene load_steps=20 format=3 uid="uid://y1qa1g3ic8sp"] + +[ext_resource type="Script" path="res://Scripts/level.gd" id="1_ws6nn"] +[ext_resource type="PackedScene" uid="uid://d2yv447trxkwt" path="res://Scenes/enemy_spawner.tscn" id="3_5imwp"] +[ext_resource type="Resource" uid="uid://8eba45hql7bo" path="res://Worlds/GreenPlanet/Enemies/dog.tres" id="3_l3ehn"] +[ext_resource type="Resource" uid="uid://cvehqh4tt28g7" path="res://Worlds/GreenPlanet/Enemies/dog_fast.tres" id="4_0gtw5"] +[ext_resource type="Resource" uid="uid://dxi17xvdlhkvc" path="res://Worlds/GreenPlanet/Enemies/dog_heavy.tres" id="5_hppyg"] +[ext_resource type="Resource" uid="uid://boik1gnpl4v0a" path="res://Worlds/GreenPlanet/Enemies/dog_boss.tres" id="6_oty0h"] +[ext_resource type="Resource" uid="uid://dsgkwh3opyqtx" path="res://Worlds/GreenPlanet/Enemies/airenemy.tres" id="7_07st7"] +[ext_resource type="Resource" uid="uid://bffhb5krs5elm" path="res://Worlds/GreenPlanet/Enemies/airenemy2.tres" id="8_sf1ao"] +[ext_resource type="PackedScene" uid="uid://1b2ikdanl66b" path="res://Scenes/card_constructor.tscn" id="9_r25gu"] +[ext_resource type="PackedScene" uid="uid://iohlxrso4bl8" path="res://Worlds/GreenPlanet/Decorations/tree.tscn" id="10_7v1co"] +[ext_resource type="Script" path="res://Scripts/AStarGraph3D.gd" id="11_07ukk"] +[ext_resource type="Script" path="res://Scripts/visualized_path.gd" id="11_d7ofl"] +[ext_resource type="PackedScene" uid="uid://bjo2q6vca5qlv" path="res://Worlds/GreenPlanet/Enemies/air_enemy.tscn" id="12_tqi5x"] +[ext_resource type="MeshLibrary" uid="uid://jfr8j8kycfa5" path="res://Worlds/GreenPlanet/tilemap.tres" id="12_ywwug"] + +[sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_h1csw"] +energy_multiplier = 3.0 + +[sub_resource type="Sky" id="Sky_t42h5"] +sky_material = SubResource("PhysicalSkyMaterial_h1csw") + +[sub_resource type="Environment" id="Environment_l41d0"] +background_mode = 2 +sky = SubResource("Sky_t42h5") + +[sub_resource type="Curve3D" id="Curve3D_suxqu"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_kkwvm"] +size = Vector3(58.5693, 9.50003, 1) + +[node name="GridMap" type="GridMap" node_paths=PackedStringArray("player_spawns", "enemy_spawns", "enemy_goals", "a_star_graph_3d")] +mesh_library = ExtResource("12_ywwug") +cell_size = Vector3(1, 1, 1) +data = { +"cells": PackedInt32Array(65490, 65504, 0, 65490, 65505, 0, 65490, 65506, 0, 65490, 65507, 0, 65490, 65508, 0, 65490, 65509, 0, 65490, 65510, 0, 65490, 65511, 0, 65490, 65512, 0, 65490, 65513, 0, 65490, 65514, 0, 65490, 65515, 0, 65490, 65516, 0, 65490, 65517, 0, 65490, 65518, 0, 65490, 65519, 0, 65490, 65520, 0, 65490, 65521, 0, 65490, 65522, 0, 65490, 65523, 0, 65490, 65524, 0, 65490, 65525, 0, 65490, 65526, 0, 65490, 65527, 0, 65490, 65528, 0, 65490, 65529, 0, 65490, 65530, 0, 65490, 65531, 0, 65490, 65532, 0, 65490, 65533, 0, 65490, 65534, 0, 65490, 65535, 0, 65490, 0, 0, 65490, 1, 0, 65490, 2, 0, 65490, 3, 0, 65490, 4, 0, 65490, 5, 0, 65490, 6, 0, 65490, 7, 0, 65490, 8, 0, 65490, 9, 0, 65490, 10, 0, 65490, 11, 0, 65490, 12, 0, 65490, 13, 0, 65490, 14, 0, 65490, 15, 0, 65490, 16, 0, 65490, 17, 0, 65490, 18, 0, 65490, 19, 0, 65490, 20, 0, 65490, 21, 0, 65490, 22, 0, 65490, 23, 0, 65490, 24, 0, 65490, 25, 0, 65490, 26, 0, 65490, 27, 0, 65490, 28, 0, 65490, 29, 0, 65490, 30, 0, 65490, 31, 0, 65490, 32, 0, 65490, 33, 0, 65490, 34, 0, 65490, 35, 0, 65491, 65504, 0, 65491, 65505, 0, 65491, 65506, 0, 65491, 65507, 0, 65491, 65508, 0, 65491, 65509, 0, 65491, 65510, 0, 65491, 65511, 0, 65491, 65512, 0, 65491, 65513, 0, 65491, 65514, 0, 65491, 65515, 0, 65491, 65516, 0, 65491, 65517, 0, 65491, 65518, 0, 65491, 65519, 0, 65491, 65520, 0, 65491, 65521, 0, 65491, 65522, 0, 65491, 65523, 0, 65491, 65524, 0, 65491, 65525, 0, 65491, 65526, 0, 65491, 65527, 0, 65491, 65528, 0, 65491, 65529, 0, 65491, 65530, 0, 65491, 65531, 0, 65491, 65532, 0, 65491, 65533, 0, 65491, 65534, 0, 65491, 65535, 0, 65491, 0, 0, 65491, 1, 0, 65491, 2, 0, 65491, 3, 0, 65491, 4, 0, 65491, 5, 0, 65491, 6, 0, 65491, 7, 0, 65491, 8, 0, 65491, 9, 0, 65491, 10, 0, 65491, 11, 0, 65491, 12, 0, 65491, 13, 0, 65491, 14, 0, 65491, 15, 0, 65491, 16, 0, 65491, 17, 0, 65491, 18, 0, 65491, 19, 0, 65491, 20, 0, 65491, 21, 0, 65491, 22, 0, 65491, 23, 0, 65491, 24, 0, 65491, 25, 0, 65491, 26, 0, 65491, 27, 0, 65491, 28, 0, 65491, 29, 0, 65491, 30, 0, 65491, 31, 0, 65491, 32, 0, 65491, 33, 0, 65491, 34, 0, 65491, 35, 0, 65492, 65504, 0, 65492, 65505, 0, 65492, 65506, 0, 65492, 65507, 0, 65492, 65508, 0, 65492, 65509, 0, 65492, 65510, 0, 65492, 65511, 0, 65492, 65512, 0, 65492, 65513, 0, 65492, 65514, 0, 65492, 65515, 0, 65492, 65516, 0, 65492, 65517, 0, 65492, 65518, 0, 65492, 65519, 0, 65492, 65520, 0, 65492, 65521, 0, 65492, 65522, 0, 65492, 65523, 0, 65492, 65524, 0, 65492, 65525, 0, 65492, 65526, 0, 65492, 65527, 0, 65492, 65528, 0, 65492, 65529, 0, 65492, 65530, 0, 65492, 65531, 0, 65492, 65532, 0, 65492, 65533, 0, 65492, 65534, 0, 65492, 65535, 0, 65492, 0, 0, 65492, 1, 0, 65492, 2, 0, 65492, 3, 0, 65492, 4, 0, 65492, 5, 0, 65492, 6, 0, 65492, 7, 0, 65492, 8, 0, 65492, 9, 0, 65492, 10, 0, 65492, 11, 0, 65492, 12, 0, 65492, 13, 0, 65492, 14, 0, 65492, 15, 0, 65492, 16, 0, 65492, 17, 0, 65492, 18, 0, 65492, 19, 0, 65492, 20, 0, 65492, 21, 0, 65492, 22, 0, 65492, 23, 0, 65492, 24, 0, 65492, 25, 0, 65492, 26, 0, 65492, 27, 0, 65492, 28, 0, 65492, 29, 0, 65492, 30, 0, 65492, 31, 0, 65492, 32, 0, 65492, 33, 0, 65492, 34, 0, 65492, 35, 0, 65493, 65504, 0, 65493, 65505, 0, 65493, 65506, 0, 65493, 65507, 0, 65493, 65508, 0, 65493, 65509, 0, 65493, 65510, 0, 65493, 65511, 0, 65493, 65512, 0, 65493, 65513, 0, 65493, 65514, 0, 65493, 65515, 0, 65493, 65516, 0, 65493, 65517, 0, 65493, 65518, 0, 65493, 65519, 0, 65493, 65520, 0, 65493, 65521, 0, 65493, 65522, 0, 65493, 65523, 0, 65493, 65524, 0, 65493, 65525, 0, 65493, 65526, 0, 65493, 65527, 0, 65493, 65528, 0, 65493, 65529, 0, 65493, 65530, 0, 65493, 65531, 0, 65493, 65532, 0, 65493, 65533, 0, 65493, 65534, 0, 65493, 65535, 0, 65493, 0, 0, 65493, 1, 0, 65493, 2, 0, 65493, 3, 0, 65493, 4, 0, 65493, 5, 0, 65493, 6, 0, 65493, 7, 0, 65493, 8, 0, 65493, 9, 0, 65493, 10, 0, 65493, 11, 0, 65493, 12, 0, 65493, 13, 0, 65493, 14, 0, 65493, 15, 0, 65493, 16, 0, 65493, 17, 0, 65493, 18, 0, 65493, 19, 0, 65493, 20, 0, 65493, 21, 0, 65493, 22, 0, 65493, 23, 0, 65493, 24, 0, 65493, 25, 0, 65493, 26, 0, 65493, 27, 0, 65493, 28, 0, 65493, 29, 0, 65493, 30, 0, 65493, 31, 0, 65493, 32, 0, 65493, 33, 0, 65493, 34, 0, 65493, 35, 0, 65494, 65504, 0, 65494, 65505, 0, 65494, 65506, 0, 65494, 65507, 0, 65494, 65508, 0, 65494, 65509, 0, 65494, 65510, 0, 65494, 65511, 0, 65494, 65512, 0, 65494, 65513, 0, 65494, 65514, 0, 65494, 65515, 0, 65494, 65516, 0, 65494, 65517, 0, 65494, 65518, 0, 65494, 65519, 0, 65494, 65520, 0, 65494, 65521, 0, 65494, 65522, 0, 65494, 65523, 0, 65494, 65524, 0, 65494, 65525, 0, 65494, 65526, 0, 65494, 65527, 0, 65494, 65528, 0, 65494, 65529, 0, 65494, 65530, 0, 65494, 65531, 0, 65494, 65532, 0, 65494, 65533, 0, 65494, 65534, 0, 65494, 65535, 0, 65494, 0, 0, 65494, 1, 0, 65494, 2, 0, 65494, 3, 0, 65494, 4, 0, 65494, 5, 0, 65494, 6, 0, 65494, 7, 0, 65494, 8, 0, 65494, 9, 0, 65494, 10, 0, 65494, 11, 0, 65494, 12, 0, 65494, 13, 0, 65494, 14, 0, 65494, 15, 0, 65494, 16, 0, 65494, 17, 0, 65494, 18, 0, 65494, 19, 0, 65494, 20, 0, 65494, 21, 0, 65494, 22, 0, 65494, 23, 0, 65494, 24, 0, 65494, 25, 0, 65494, 26, 0, 65494, 27, 0, 65494, 28, 0, 65494, 29, 0, 65494, 30, 0, 65494, 31, 0, 65494, 32, 0, 65494, 33, 0, 65494, 34, 0, 65494, 35, 0, 65495, 65504, 0, 65495, 65505, 0, 65495, 65506, 0, 65495, 65507, 0, 65495, 65508, 0, 65495, 65509, 0, 65495, 65510, 0, 65495, 65511, 0, 65495, 65512, 0, 65495, 65513, 0, 65495, 65514, 0, 65495, 65515, 0, 65495, 65516, 0, 65495, 65517, 0, 65495, 65518, 0, 65495, 65519, 0, 65495, 65520, 0, 65495, 65521, 0, 65495, 65522, 0, 65495, 65523, 0, 65495, 65524, 0, 65495, 65525, 0, 65495, 65526, 0, 65495, 65527, 0, 65495, 65528, 0, 65495, 65529, 0, 65495, 65530, 0, 65495, 65531, 0, 65495, 65532, 0, 65495, 65533, 0, 65495, 65534, 0, 65495, 65535, 0, 65495, 0, 0, 65495, 1, 0, 65495, 2, 0, 65495, 3, 0, 65495, 4, 0, 65495, 5, 0, 65495, 6, 0, 65495, 7, 0, 65495, 8, 0, 65495, 9, 0, 65495, 10, 0, 65495, 11, 0, 65495, 12, 0, 65495, 13, 0, 65495, 14, 0, 65495, 15, 0, 65495, 16, 0, 65495, 17, 0, 65495, 18, 0, 65495, 19, 0, 65495, 20, 0, 65495, 21, 0, 65495, 22, 0, 65495, 23, 0, 65495, 24, 0, 65495, 25, 0, 65495, 26, 0, 65495, 27, 0, 65495, 28, 0, 65495, 29, 0, 65495, 30, 0, 65495, 31, 0, 65495, 32, 0, 65495, 33, 0, 65495, 34, 0, 65495, 35, 0, 65496, 65504, 0, 65496, 65505, 0, 65496, 65506, 0, 65496, 65507, 0, 65496, 65508, 0, 65496, 65509, 0, 65496, 65510, 0, 65496, 65511, 0, 65496, 65512, 0, 65496, 65513, 0, 65496, 65514, 0, 65496, 65515, 0, 65496, 65516, 0, 65496, 65517, 0, 65496, 65518, 0, 65496, 65519, 0, 65496, 65520, 0, 65496, 65521, 0, 65496, 65522, 0, 65496, 65523, 0, 65496, 65524, 0, 65496, 65525, 0, 65496, 65526, 0, 65496, 65527, 0, 65496, 65528, 0, 65496, 65529, 0, 65496, 65530, 0, 65496, 65531, 0, 65496, 65532, 0, 65496, 65533, 0, 65496, 65534, 0, 65496, 65535, 0, 65496, 0, 0, 65496, 1, 0, 65496, 2, 0, 65496, 3, 0, 65496, 4, 0, 65496, 5, 0, 65496, 6, 0, 65496, 7, 0, 65496, 8, 0, 65496, 9, 0, 65496, 10, 0, 65496, 11, 0, 65496, 12, 0, 65496, 13, 0, 65496, 14, 0, 65496, 15, 0, 65496, 16, 0, 65496, 17, 0, 65496, 18, 0, 65496, 19, 0, 65496, 20, 0, 65496, 21, 0, 65496, 22, 0, 65496, 23, 0, 65496, 24, 0, 65496, 25, 0, 65496, 26, 0, 65496, 27, 0, 65496, 28, 0, 65496, 29, 0, 65496, 30, 0, 65496, 31, 0, 65496, 32, 0, 65496, 33, 0, 65496, 34, 0, 65496, 35, 0, 65497, 65504, 0, 65497, 65505, 0, 65497, 65506, 0, 65497, 65507, 0, 65497, 65508, 0, 65497, 65509, 0, 65497, 65510, 0, 65497, 65511, 0, 65497, 65512, 0, 65497, 65513, 0, 65497, 65514, 0, 65497, 65515, 0, 65497, 65516, 0, 65497, 65517, 0, 65497, 65518, 0, 65497, 65519, 0, 65497, 65520, 0, 65497, 65521, 0, 65497, 65522, 0, 65497, 65523, 0, 65497, 65524, 0, 65497, 65525, 0, 65497, 65526, 0, 65497, 65527, 0, 65497, 65528, 0, 65497, 65529, 0, 65497, 65530, 0, 65497, 65531, 0, 65497, 65532, 0, 65497, 65533, 0, 65497, 65534, 0, 65497, 65535, 0, 65497, 0, 0, 65497, 1, 0, 65497, 2, 0, 65497, 3, 0, 65497, 4, 0, 65497, 5, 0, 65497, 6, 0, 65497, 7, 0, 65497, 8, 0, 65497, 9, 0, 65497, 10, 0, 65497, 11, 0, 65497, 12, 0, 65497, 13, 0, 65497, 14, 0, 65497, 15, 0, 65497, 16, 0, 65497, 17, 0, 65497, 18, 0, 65497, 19, 0, 65497, 20, 0, 65497, 21, 0, 65497, 22, 0, 65497, 23, 0, 65497, 24, 0, 65497, 25, 0, 65497, 26, 0, 65497, 27, 0, 65497, 28, 0, 65497, 29, 0, 65497, 30, 0, 65497, 31, 0, 65497, 32, 0, 65497, 33, 0, 65497, 34, 0, 65497, 35, 0, 65498, 65504, 0, 65498, 65505, 0, 65498, 65506, 0, 65498, 65507, 0, 65498, 65508, 0, 65498, 65509, 0, 65498, 65510, 0, 65498, 65511, 0, 65498, 65512, 0, 65498, 65513, 0, 65498, 65514, 0, 65498, 65515, 0, 65498, 65516, 0, 65498, 65517, 0, 65498, 65518, 0, 65498, 65519, 0, 65498, 65520, 0, 65498, 65521, 0, 65498, 65522, 0, 65498, 65523, 0, 65498, 65524, 0, 65498, 65525, 0, 65498, 65526, 0, 65498, 65527, 0, 65498, 65528, 0, 65498, 65529, 0, 65498, 65530, 0, 65498, 65531, 0, 65498, 65532, 0, 65498, 65533, 0, 65498, 65534, 0, 65498, 65535, 0, 65498, 0, 0, 65498, 1, 0, 65498, 2, 0, 65498, 3, 0, 65498, 4, 0, 65498, 5, 0, 65498, 6, 0, 65498, 7, 0, 65498, 8, 0, 65498, 9, 0, 65498, 10, 0, 65498, 11, 0, 65498, 12, 0, 65498, 13, 0, 65498, 14, 0, 65498, 15, 0, 65498, 16, 0, 65498, 17, 0, 65498, 18, 0, 65498, 19, 0, 65498, 20, 0, 65498, 21, 0, 65498, 22, 0, 65498, 23, 0, 65498, 24, 0, 65498, 25, 0, 65498, 26, 0, 65498, 27, 0, 65498, 28, 0, 65498, 29, 0, 65498, 30, 0, 65498, 31, 0, 65498, 32, 0, 65498, 33, 0, 65498, 34, 0, 65498, 35, 0, 65499, 65504, 0, 65499, 65505, 0, 65499, 65506, 0, 65499, 65507, 0, 65499, 65508, 0, 65499, 65509, 0, 65499, 65510, 0, 65499, 65511, 0, 65499, 65512, 0, 65499, 65513, 0, 65499, 65514, 0, 65499, 65515, 0, 65499, 65516, 0, 65499, 65517, 0, 65499, 65518, 0, 65499, 65519, 0, 65499, 65520, 0, 65499, 65521, 0, 65499, 65522, 0, 65499, 65523, 0, 65499, 65524, 0, 65499, 65525, 0, 65499, 65526, 0, 65499, 65527, 0, 65499, 65528, 0, 65499, 65529, 0, 65499, 65530, 0, 65499, 65531, 0, 65499, 65532, 0, 65499, 65533, 0, 65499, 65534, 0, 65499, 65535, 0, 65499, 0, 0, 65499, 1, 0, 65499, 2, 0, 65499, 3, 0, 65499, 4, 0, 65499, 5, 0, 65499, 6, 0, 65499, 7, 0, 65499, 8, 0, 65499, 9, 0, 65499, 10, 0, 65499, 11, 0, 65499, 12, 0, 65499, 13, 0, 65499, 14, 0, 65499, 15, 0, 65499, 16, 0, 65499, 17, 0, 65499, 18, 0, 65499, 19, 0, 65499, 20, 0, 65499, 21, 0, 65499, 22, 0, 65499, 23, 0, 65499, 24, 0, 65499, 25, 0, 65499, 26, 0, 65499, 27, 0, 65499, 28, 0, 65499, 29, 0, 65499, 30, 0, 65499, 31, 0, 65499, 32, 0, 65499, 33, 0, 65499, 34, 0, 65499, 35, 0, 65500, 65504, 0, 65500, 65505, 0, 65500, 65506, 0, 65500, 65507, 0, 65500, 65508, 0, 65500, 65509, 0, 65500, 65510, 0, 65500, 65511, 0, 65500, 65512, 0, 65500, 65513, 0, 65500, 65514, 0, 65500, 65515, 0, 65500, 65516, 0, 65500, 65517, 0, 65500, 65518, 0, 65500, 65519, 0, 65500, 65520, 0, 65500, 65521, 0, 65500, 65522, 0, 65500, 65523, 0, 65500, 65524, 0, 65500, 65525, 0, 65500, 65526, 0, 65500, 65527, 0, 65500, 65528, 0, 65500, 65529, 0, 65500, 65530, 0, 65500, 65531, 0, 65500, 65532, 0, 65500, 65533, 0, 65500, 65534, 0, 65500, 65535, 0, 65500, 0, 0, 65500, 1, 0, 65500, 2, 0, 65500, 3, 0, 65500, 4, 0, 65500, 5, 0, 65500, 6, 0, 65500, 7, 0, 65500, 8, 0, 65500, 9, 0, 65500, 10, 0, 65500, 11, 0, 65500, 12, 0, 65500, 13, 0, 65500, 14, 0, 65500, 15, 0, 65500, 16, 0, 65500, 17, 0, 65500, 18, 0, 65500, 19, 0, 65500, 20, 0, 65500, 21, 0, 65500, 22, 0, 65500, 23, 0, 65500, 24, 0, 65500, 25, 0, 65500, 26, 0, 65500, 27, 0, 65500, 28, 0, 65500, 29, 0, 65500, 30, 0, 65500, 31, 0, 65500, 32, 0, 65500, 33, 0, 65500, 34, 0, 65500, 35, 0, 65501, 65504, 0, 65501, 65505, 0, 65501, 65506, 0, 65501, 65507, 0, 65501, 65508, 0, 65501, 65509, 0, 65501, 65510, 0, 65501, 65511, 0, 65501, 65512, 0, 65501, 65513, 0, 65501, 65514, 0, 65501, 65515, 0, 65501, 65516, 0, 65501, 65517, 0, 65501, 65518, 0, 65501, 65519, 0, 65501, 65520, 0, 65501, 65521, 0, 65501, 65522, 0, 65501, 65523, 0, 65501, 65524, 0, 65501, 65525, 0, 65501, 65526, 0, 65501, 65527, 0, 65501, 65528, 0, 65501, 65529, 0, 65501, 65530, 0, 65501, 65531, 0, 65501, 65532, 0, 65501, 65533, 0, 65501, 65534, 0, 65501, 65535, 0, 65501, 0, 0, 65501, 1, 0, 65501, 2, 0, 65501, 3, 0, 65501, 4, 0, 65501, 5, 0, 65501, 6, 0, 65501, 7, 0, 65501, 8, 0, 65501, 9, 0, 65501, 10, 0, 65501, 11, 0, 65501, 12, 0, 65501, 13, 0, 65501, 14, 0, 65501, 15, 0, 65501, 16, 0, 65501, 17, 0, 65501, 18, 0, 65501, 19, 0, 65501, 20, 0, 65501, 21, 0, 65501, 22, 0, 65501, 23, 0, 65501, 24, 0, 65501, 25, 0, 65501, 26, 0, 65501, 27, 0, 65501, 28, 0, 65501, 29, 0, 65501, 30, 0, 65501, 31, 0, 65501, 32, 0, 65501, 33, 0, 65501, 34, 0, 65501, 35, 0, 65502, 65504, 0, 65502, 65505, 0, 65502, 65506, 0, 65502, 65507, 0, 65502, 65508, 0, 65502, 65509, 0, 65502, 65510, 0, 65502, 65511, 0, 65502, 65512, 0, 65502, 65513, 0, 65502, 65514, 0, 65502, 65515, 0, 65502, 65516, 0, 65502, 65517, 0, 65502, 65518, 0, 65502, 65519, 0, 65502, 65520, 0, 65502, 65521, 0, 65502, 65522, 0, 65502, 65523, 0, 65502, 65524, 0, 65502, 65525, 0, 65502, 65526, 0, 65502, 65527, 0, 65502, 65528, 0, 65502, 65529, 0, 65502, 65530, 0, 65502, 65531, 0, 65502, 65532, 0, 65502, 65533, 0, 65502, 65534, 0, 65502, 65535, 0, 65502, 0, 0, 65502, 1, 0, 65502, 2, 0, 65502, 3, 0, 65502, 4, 0, 65502, 5, 0, 65502, 6, 0, 65502, 7, 0, 65502, 8, 0, 65502, 9, 0, 65502, 10, 0, 65502, 11, 0, 65502, 12, 0, 65502, 13, 0, 65502, 14, 0, 65502, 15, 0, 65502, 16, 0, 65502, 17, 0, 65502, 18, 0, 65502, 19, 0, 65502, 20, 0, 65502, 21, 0, 65502, 22, 0, 65502, 23, 0, 65502, 24, 0, 65502, 25, 0, 65502, 26, 0, 65502, 27, 0, 65502, 28, 0, 65502, 29, 0, 65502, 30, 0, 65502, 31, 0, 65502, 32, 0, 65502, 33, 0, 65502, 34, 0, 65502, 35, 0, 65503, 65504, 0, 65503, 65505, 0, 65503, 65506, 0, 65503, 65507, 0, 65503, 65508, 0, 65503, 65509, 0, 65503, 65510, 0, 65503, 65511, 0, 65503, 65512, 0, 65503, 65513, 0, 65503, 65514, 0, 65503, 65515, 0, 65503, 65516, 0, 65503, 65517, 0, 65503, 65518, 0, 65503, 65519, 0, 65503, 65520, 0, 65503, 65521, 0, 65503, 65522, 0, 65503, 65523, 0, 65503, 65524, 0, 65503, 65525, 0, 65503, 65526, 0, 65503, 65527, 0, 65503, 65528, 0, 65503, 65529, 0, 65503, 65530, 0, 65503, 65531, 0, 65503, 65532, 0, 65503, 65533, 0, 65503, 65534, 0, 65503, 65535, 0, 65503, 0, 0, 65503, 1, 0, 65503, 2, 0, 65503, 3, 0, 65503, 4, 0, 65503, 5, 0, 65503, 6, 0, 65503, 7, 0, 65503, 8, 0, 65503, 9, 0, 65503, 10, 0, 65503, 11, 0, 65503, 12, 0, 65503, 13, 0, 65503, 14, 0, 65503, 15, 0, 65503, 16, 0, 65503, 17, 0, 65503, 18, 0, 65503, 19, 0, 65503, 20, 0, 65503, 21, 0, 65503, 22, 0, 65503, 23, 0, 65503, 24, 0, 65503, 25, 0, 65503, 26, 0, 65503, 27, 0, 65503, 28, 0, 65503, 29, 0, 65503, 30, 0, 65503, 31, 0, 65503, 32, 0, 65503, 33, 0, 65503, 34, 0, 65503, 35, 0, 65504, 65504, 0, 65504, 65505, 0, 65504, 65506, 0, 65504, 65507, 0, 65504, 65508, 0, 65504, 65509, 0, 65504, 65510, 0, 65504, 65511, 0, 65504, 65512, 0, 65504, 65513, 0, 65504, 65514, 0, 65504, 65515, 0, 65504, 65516, 0, 65504, 65517, 0, 65504, 65518, 0, 65504, 65519, 0, 65504, 65520, 0, 65504, 65521, 0, 65504, 65522, 0, 65504, 65523, 0, 65504, 65524, 0, 65504, 65525, 0, 65504, 65526, 0, 65504, 65527, 0, 65504, 65528, 0, 65504, 65529, 0, 65504, 65530, 0, 65504, 65531, 0, 65504, 65532, 0, 65504, 65533, 0, 65504, 65534, 0, 65504, 65535, 0, 65504, 0, 0, 65504, 1, 0, 65504, 2, 0, 65504, 3, 0, 65504, 4, 0, 65504, 5, 0, 65504, 6, 0, 65504, 7, 0, 65504, 8, 0, 65504, 9, 0, 65504, 10, 0, 65504, 11, 0, 65504, 12, 0, 65504, 13, 0, 65504, 14, 0, 65504, 15, 0, 65504, 16, 0, 65504, 17, 0, 65504, 18, 0, 65504, 19, 0, 65504, 20, 0, 65504, 21, 0, 65504, 22, 0, 65504, 23, 0, 65504, 24, 0, 65504, 25, 0, 65504, 26, 0, 65504, 27, 0, 65504, 28, 0, 65504, 29, 0, 65504, 30, 0, 65504, 31, 0, 65504, 32, 0, 65504, 33, 0, 65504, 34, 0, 65504, 35, 0, 65505, 65504, 0, 65505, 65505, 0, 65505, 65506, 0, 65505, 65507, 0, 65505, 65508, 0, 65505, 65509, 0, 65505, 65510, 0, 65505, 65511, 0, 65505, 65512, 0, 65505, 65513, 0, 65505, 65514, 0, 65505, 65515, 0, 65505, 65516, 0, 65505, 65517, 0, 65505, 65518, 0, 65505, 65519, 0, 65505, 65520, 0, 65505, 65521, 0, 65505, 65522, 0, 65505, 65523, 0, 65505, 65524, 0, 65505, 65525, 0, 65505, 65526, 0, 65505, 65527, 0, 65505, 65528, 0, 65505, 65529, 0, 65505, 65530, 0, 65505, 65531, 0, 65505, 65532, 0, 65505, 65533, 0, 65505, 65534, 0, 65505, 65535, 0, 65505, 0, 0, 65505, 1, 0, 65505, 2, 0, 65505, 3, 0, 65505, 4, 0, 65505, 5, 0, 65505, 6, 0, 65505, 7, 0, 65505, 8, 0, 65505, 9, 0, 65505, 10, 0, 65505, 11, 0, 65505, 12, 0, 65505, 13, 0, 65505, 14, 0, 65505, 15, 0, 65505, 16, 0, 65505, 17, 0, 65505, 18, 0, 65505, 19, 0, 65505, 20, 0, 65505, 21, 0, 65505, 22, 0, 65505, 23, 0, 65505, 24, 0, 65505, 25, 0, 65505, 26, 0, 65505, 27, 0, 65505, 28, 0, 65505, 29, 0, 65505, 30, 0, 65505, 31, 0, 65505, 32, 0, 65505, 33, 0, 65505, 34, 0, 65505, 35, 0, 65506, 65504, 0, 65506, 65505, 0, 65506, 65506, 0, 65506, 65507, 0, 65506, 65508, 0, 65506, 65509, 0, 65506, 65510, 0, 65506, 65511, 0, 65506, 65512, 0, 65506, 65513, 0, 65506, 65514, 0, 65506, 65515, 0, 65506, 65516, 0, 65506, 65517, 0, 65506, 65518, 0, 65506, 65519, 0, 65506, 65520, 0, 65506, 65521, 0, 65506, 65522, 0, 65506, 65523, 0, 65506, 65524, 0, 65506, 65525, 0, 65506, 65526, 0, 65506, 65527, 0, 65506, 65528, 0, 65506, 65529, 0, 65506, 65530, 0, 65506, 65531, 0, 65506, 65532, 0, 65506, 65533, 0, 65506, 65534, 0, 65506, 65535, 0, 65506, 0, 0, 65506, 1, 0, 65506, 2, 0, 65506, 3, 0, 65506, 4, 0, 65506, 5, 0, 65506, 6, 0, 65506, 7, 0, 65506, 8, 0, 65506, 9, 0, 65506, 10, 0, 65506, 11, 0, 65506, 12, 0, 65506, 13, 0, 65506, 14, 0, 65506, 15, 0, 65506, 16, 0, 65506, 17, 0, 65506, 18, 0, 65506, 19, 0, 65506, 20, 0, 65506, 21, 0, 65506, 22, 0, 65506, 23, 0, 65506, 24, 0, 65506, 25, 0, 65506, 26, 0, 65506, 27, 0, 65506, 28, 0, 65506, 29, 0, 65506, 30, 0, 65506, 31, 0, 65506, 32, 0, 65506, 33, 0, 65506, 34, 0, 65506, 35, 0, 65507, 65504, 0, 65507, 65505, 0, 65507, 65506, 0, 65507, 65507, 0, 65507, 65508, 0, 65507, 65509, 0, 65507, 65510, 0, 65507, 65511, 0, 65507, 65512, 0, 65507, 65513, 0, 65507, 65514, 0, 65507, 65515, 0, 65507, 65516, 0, 65507, 65517, 0, 65507, 65518, 0, 65507, 65519, 0, 65507, 65520, 0, 65507, 65521, 0, 65507, 65522, 0, 65507, 65523, 0, 65507, 65524, 0, 65507, 65525, 0, 65507, 65526, 0, 65507, 65527, 0, 65507, 65528, 0, 65507, 65529, 0, 65507, 65530, 0, 65507, 65531, 0, 65507, 65532, 0, 65507, 65533, 0, 65507, 65534, 0, 65507, 65535, 0, 65507, 0, 0, 65507, 1, 0, 65507, 2, 0, 65507, 3, 0, 65507, 4, 0, 65507, 5, 0, 65507, 6, 0, 65507, 7, 0, 65507, 8, 0, 65507, 9, 0, 65507, 10, 0, 65507, 11, 0, 65507, 12, 0, 65507, 13, 0, 65507, 14, 0, 65507, 15, 0, 65507, 16, 0, 65507, 17, 0, 65507, 18, 0, 65507, 19, 0, 65507, 20, 0, 65507, 21, 0, 65507, 22, 0, 65507, 23, 0, 65507, 24, 0, 65507, 25, 0, 65507, 26, 0, 65507, 27, 0, 65507, 28, 0, 65507, 29, 0, 65507, 30, 0, 65507, 31, 0, 65507, 32, 0, 65507, 33, 0, 65507, 34, 0, 65507, 35, 0, 65508, 65504, 0, 65508, 65505, 0, 65508, 65506, 0, 65508, 65507, 0, 65508, 65508, 0, 65508, 65509, 0, 65508, 65510, 0, 65508, 65511, 0, 65508, 65512, 0, 65508, 65513, 0, 65508, 65514, 0, 65508, 65515, 0, 65508, 65516, 0, 65508, 65517, 0, 65508, 65518, 0, 65508, 65519, 0, 65508, 65520, 0, 65508, 65521, 0, 65508, 65522, 0, 65508, 65523, 0, 65508, 65524, 0, 65508, 65525, 0, 65508, 65526, 0, 65508, 65527, 0, 65508, 65528, 0, 65508, 65529, 0, 65508, 65530, 0, 65508, 65531, 0, 65508, 65532, 0, 65508, 65533, 0, 65508, 65534, 0, 65508, 65535, 0, 65508, 0, 0, 65508, 1, 0, 65508, 2, 0, 65508, 3, 0, 65508, 4, 0, 65508, 5, 0, 65508, 6, 0, 65508, 7, 0, 65508, 8, 0, 65508, 9, 0, 65508, 10, 0, 65508, 11, 0, 65508, 12, 0, 65508, 13, 0, 65508, 14, 0, 65508, 15, 0, 65508, 16, 0, 65508, 17, 0, 65508, 18, 0, 65508, 19, 0, 65508, 20, 0, 65508, 21, 0, 65508, 22, 0, 65508, 23, 0, 65508, 24, 0, 65508, 25, 0, 65508, 26, 0, 65508, 27, 0, 65508, 28, 0, 65508, 29, 0, 65508, 30, 0, 65508, 31, 0, 65508, 32, 0, 65508, 33, 0, 65508, 34, 0, 65508, 35, 0, 65509, 65504, 0, 65509, 65505, 0, 65509, 65506, 0, 65509, 65507, 0, 65509, 65508, 0, 65509, 65509, 0, 65509, 65510, 0, 65509, 65511, 0, 65509, 65512, 0, 65509, 65513, 0, 65509, 65514, 0, 65509, 65515, 0, 65509, 65516, 0, 65509, 65517, 0, 65509, 65518, 0, 65509, 65519, 0, 65509, 65520, 0, 65509, 65521, 0, 65509, 65522, 0, 65509, 65523, 0, 65509, 65524, 0, 65509, 65525, 0, 65509, 65526, 0, 65509, 65527, 0, 65509, 65528, 0, 65509, 65529, 0, 65509, 65530, 0, 65509, 65531, 0, 65509, 65532, 0, 65509, 65533, 0, 65509, 65534, 0, 65509, 65535, 0, 65509, 0, 0, 65509, 1, 0, 65509, 2, 0, 65509, 3, 0, 65509, 4, 0, 65509, 5, 0, 65509, 6, 0, 65509, 7, 0, 65509, 8, 0, 65509, 9, 0, 65509, 10, 0, 65509, 11, 0, 65509, 12, 0, 65509, 13, 0, 65509, 14, 0, 65509, 15, 0, 65509, 16, 0, 65509, 17, 0, 65509, 18, 0, 65509, 19, 0, 65509, 20, 0, 65509, 21, 0, 65509, 22, 0, 65509, 23, 0, 65509, 24, 0, 65509, 25, 0, 65509, 26, 0, 65509, 27, 0, 65509, 28, 0, 65509, 29, 0, 65509, 30, 0, 65509, 31, 0, 65509, 32, 0, 65509, 33, 0, 65509, 34, 0, 65509, 35, 0, 65510, 65504, 0, 65510, 65505, 0, 65510, 65506, 0, 65510, 65507, 0, 65510, 65508, 0, 65510, 65509, 0, 65510, 65510, 0, 65510, 65511, 0, 65510, 65512, 0, 65510, 65513, 0, 65510, 65514, 0, 65510, 65515, 0, 65510, 65516, 0, 65510, 65517, 0, 65510, 65518, 0, 65510, 65519, 0, 65510, 65520, 0, 65510, 65521, 0, 65510, 65522, 0, 65510, 65523, 0, 65510, 65524, 0, 65510, 65525, 0, 65510, 65526, 0, 65510, 65527, 0, 65510, 65528, 0, 65510, 65529, 0, 65510, 65530, 0, 65510, 65531, 0, 65510, 65532, 0, 65510, 65533, 0, 65510, 65534, 0, 65510, 65535, 0, 65510, 0, 0, 65510, 1, 0, 65510, 2, 0, 65510, 3, 0, 65510, 4, 0, 65510, 5, 0, 65510, 6, 0, 65510, 7, 0, 65510, 8, 0, 65510, 9, 0, 65510, 10, 0, 65510, 11, 0, 65510, 12, 0, 65510, 13, 0, 65510, 14, 0, 65510, 15, 0, 65510, 16, 0, 65510, 17, 0, 65510, 18, 0, 65510, 19, 0, 65510, 20, 0, 65510, 21, 0, 65510, 22, 0, 65510, 23, 0, 65510, 24, 0, 65510, 25, 0, 65510, 26, 0, 65510, 27, 0, 65510, 28, 0, 65510, 29, 0, 65510, 30, 0, 65510, 31, 0, 65510, 32, 0, 65510, 33, 0, 65510, 34, 0, 65510, 35, 0, 65511, 65504, 0, 65511, 65505, 0, 65511, 65506, 0, 65511, 65507, 0, 65511, 65508, 0, 65511, 65509, 0, 65511, 65510, 0, 65511, 65511, 0, 65511, 65512, 0, 65511, 65513, 0, 65511, 65514, 0, 65511, 65515, 0, 65511, 65516, 0, 65511, 65517, 0, 65511, 65518, 0, 65511, 65519, 0, 65511, 65520, 0, 65511, 65521, 0, 65511, 65522, 0, 65511, 65523, 0, 65511, 65524, 0, 65511, 65525, 0, 65511, 65526, 0, 65511, 65527, 0, 65511, 65528, 0, 65511, 65529, 0, 65511, 65530, 0, 65511, 65531, 0, 65511, 65532, 0, 65511, 65533, 0, 65511, 65534, 0, 65511, 65535, 0, 65511, 0, 0, 65511, 1, 0, 65511, 2, 0, 65511, 3, 0, 65511, 4, 0, 65511, 5, 0, 65511, 6, 0, 65511, 7, 0, 65511, 8, 0, 65511, 9, 0, 65511, 10, 0, 65511, 11, 0, 65511, 12, 0, 65511, 13, 0, 65511, 14, 0, 65511, 15, 0, 65511, 16, 0, 65511, 17, 0, 65511, 18, 0, 65511, 19, 0, 65511, 20, 0, 65511, 21, 0, 65511, 22, 0, 65511, 23, 0, 65511, 24, 0, 65511, 25, 0, 65511, 26, 0, 65511, 27, 0, 65511, 28, 0, 65511, 29, 0, 65511, 30, 0, 65511, 31, 0, 65511, 32, 0, 65511, 33, 0, 65511, 34, 0, 65511, 35, 0, 65512, 65504, 0, 65512, 65505, 0, 65512, 65506, 0, 65512, 65507, 0, 65512, 65508, 0, 65512, 65509, 0, 65512, 65510, 0, 65512, 65511, 0, 65512, 65512, 0, 65512, 65513, 0, 65512, 65514, 0, 65512, 65515, 0, 65512, 65516, 0, 65512, 65517, 0, 65512, 65518, 0, 65512, 65519, 0, 65512, 65520, 0, 65512, 65521, 0, 65512, 65522, 0, 65512, 65523, 0, 65512, 65524, 0, 65512, 65525, 0, 65512, 65526, 0, 65512, 65527, 0, 65512, 65528, 0, 65512, 65529, 0, 65512, 65530, 0, 65512, 65531, 0, 65512, 65532, 0, 65512, 65533, 0, 65512, 65534, 0, 65512, 65535, 0, 65512, 0, 0, 65512, 1, 0, 65512, 2, 0, 65512, 3, 0, 65512, 4, 0, 65512, 5, 0, 65512, 6, 0, 65512, 7, 0, 65512, 8, 0, 65512, 9, 0, 65512, 10, 0, 65512, 11, 0, 65512, 12, 0, 65512, 13, 0, 65512, 14, 0, 65512, 15, 0, 65512, 16, 0, 65512, 17, 0, 65512, 18, 0, 65512, 19, 0, 65512, 20, 0, 65512, 21, 0, 65512, 22, 0, 65512, 23, 0, 65512, 24, 0, 65512, 25, 0, 65512, 26, 0, 65512, 27, 0, 65512, 28, 0, 65512, 29, 0, 65512, 30, 0, 65512, 31, 0, 65512, 32, 0, 65512, 33, 0, 65512, 34, 0, 65512, 35, 0, 65513, 65504, 0, 65513, 65505, 0, 65513, 65506, 0, 65513, 65507, 0, 65513, 65508, 0, 65513, 65509, 0, 65513, 65510, 0, 65513, 65511, 0, 65513, 65512, 0, 65513, 65513, 0, 65513, 65514, 0, 65513, 65515, 0, 65513, 65516, 0, 65513, 65517, 0, 65513, 65518, 0, 65513, 65519, 0, 65513, 65520, 0, 65513, 65521, 0, 65513, 65522, 0, 65513, 65523, 0, 65513, 65524, 0, 65513, 65525, 0, 65513, 65526, 0, 65513, 65527, 0, 65513, 65528, 0, 65513, 65529, 0, 65513, 65530, 0, 65513, 65531, 0, 65513, 65532, 0, 65513, 65533, 0, 65513, 65534, 0, 65513, 65535, 0, 65513, 0, 0, 65513, 1, 0, 65513, 2, 0, 65513, 3, 0, 65513, 4, 0, 65513, 5, 0, 65513, 6, 0, 65513, 7, 0, 65513, 8, 0, 65513, 9, 0, 65513, 10, 0, 65513, 11, 0, 65513, 12, 0, 65513, 13, 0, 65513, 14, 0, 65513, 15, 0, 65513, 16, 0, 65513, 17, 0, 65513, 18, 0, 65513, 19, 0, 65513, 20, 0, 65513, 21, 0, 65513, 22, 0, 65513, 23, 0, 65513, 24, 0, 65513, 25, 0, 65513, 26, 0, 65513, 27, 0, 65513, 28, 0, 65513, 29, 0, 65513, 30, 0, 65513, 31, 0, 65513, 32, 0, 65513, 33, 0, 65513, 34, 0, 65513, 35, 0, 65514, 65504, 0, 65514, 65505, 0, 65514, 65506, 0, 65514, 65507, 0, 65514, 65508, 0, 65514, 65509, 0, 65514, 65510, 0, 65514, 65511, 0, 65514, 65512, 0, 65514, 65513, 0, 65514, 65514, 0, 65514, 65515, 0, 65514, 65516, 0, 65514, 65517, 0, 65514, 65518, 0, 65514, 65519, 0, 65514, 65520, 0, 65514, 65521, 0, 65514, 65522, 0, 65514, 65523, 0, 65514, 65524, 0, 65514, 65525, 0, 65514, 65526, 0, 65514, 65527, 0, 65514, 65528, 0, 65514, 65529, 0, 65514, 65530, 0, 65514, 65531, 0, 65514, 65532, 0, 65514, 65533, 0, 65514, 65534, 0, 65514, 65535, 0, 65514, 0, 0, 65514, 1, 0, 65514, 2, 0, 65514, 3, 0, 65514, 4, 0, 65514, 5, 0, 65514, 6, 0, 65514, 7, 0, 65514, 8, 0, 65514, 9, 0, 65514, 10, 0, 65514, 11, 0, 65514, 12, 0, 65514, 13, 0, 65514, 14, 0, 65514, 15, 0, 65514, 16, 0, 65514, 17, 0, 65514, 18, 0, 65514, 19, 0, 65514, 20, 0, 65514, 21, 0, 65514, 22, 0, 65514, 23, 0, 65514, 24, 0, 65514, 25, 0, 65514, 26, 0, 65514, 27, 0, 65514, 28, 0, 65514, 29, 0, 65514, 30, 0, 65514, 31, 0, 65514, 32, 0, 65514, 33, 0, 65514, 34, 0, 65514, 35, 0, 65515, 65504, 0, 65515, 65505, 0, 65515, 65506, 0, 65515, 65507, 0, 65515, 65508, 0, 65515, 65509, 0, 65515, 65510, 0, 65515, 65511, 0, 65515, 65512, 0, 65515, 65513, 0, 65515, 65514, 0, 65515, 65515, 0, 65515, 65516, 0, 65515, 65517, 0, 65515, 65518, 0, 65515, 65519, 0, 65515, 65520, 0, 65515, 65521, 0, 65515, 65522, 0, 65515, 65523, 0, 65515, 65524, 0, 65515, 65525, 0, 65515, 65526, 0, 65515, 65527, 0, 65515, 65528, 0, 65515, 65529, 0, 65515, 65530, 0, 65515, 65531, 0, 65515, 65532, 0, 65515, 65533, 0, 65515, 65534, 0, 65515, 65535, 0, 65515, 0, 0, 65515, 1, 0, 65515, 2, 0, 65515, 3, 0, 65515, 4, 0, 65515, 5, 0, 65515, 6, 0, 65515, 7, 0, 65515, 8, 0, 65515, 9, 0, 65515, 10, 0, 65515, 11, 0, 65515, 12, 0, 65515, 13, 0, 65515, 14, 0, 65515, 15, 0, 65515, 16, 0, 65515, 17, 0, 65515, 18, 0, 65515, 19, 0, 65515, 20, 0, 65515, 21, 0, 65515, 22, 0, 65515, 23, 0, 65515, 24, 0, 65515, 25, 0, 65515, 26, 0, 65515, 27, 0, 65515, 28, 0, 65515, 29, 0, 65515, 30, 0, 65515, 31, 0, 65515, 32, 0, 65515, 33, 0, 65515, 34, 0, 65515, 35, 0, 65516, 65504, 0, 65516, 65505, 0, 65516, 65506, 0, 65516, 65507, 0, 65516, 65508, 0, 65516, 65509, 0, 65516, 65510, 0, 65516, 65511, 0, 65516, 65512, 0, 65516, 65513, 0, 65516, 65514, 0, 65516, 65515, 0, 65516, 65516, 0, 65516, 65517, 0, 65516, 65518, 0, 65516, 65519, 0, 65516, 65520, 0, 65516, 65521, 0, 65516, 65522, 0, 65516, 65523, 0, 65516, 65524, 0, 65516, 65525, 0, 65516, 65526, 0, 65516, 65527, 0, 65516, 65528, 0, 65516, 65529, 0, 65516, 65530, 0, 65516, 65531, 0, 65516, 65532, 0, 65516, 65533, 0, 65516, 65534, 0, 65516, 65535, 0, 65516, 0, 0, 65516, 1, 0, 65516, 2, 0, 65516, 3, 0, 65516, 4, 0, 65516, 5, 0, 65516, 6, 0, 65516, 7, 0, 65516, 8, 0, 65516, 9, 0, 65516, 10, 0, 65516, 11, 0, 65516, 12, 0, 65516, 13, 0, 65516, 14, 0, 65516, 15, 0, 65516, 16, 0, 65516, 17, 0, 65516, 18, 0, 65516, 19, 0, 65516, 20, 0, 65516, 21, 0, 65516, 22, 0, 65516, 23, 0, 65516, 24, 0, 65516, 25, 0, 65516, 26, 0, 65516, 27, 0, 65516, 28, 0, 65516, 29, 0, 65516, 30, 0, 65516, 31, 0, 65516, 32, 0, 65516, 33, 0, 65516, 34, 0, 65516, 35, 0, 65517, 65504, 0, 65517, 65505, 0, 65517, 65506, 0, 65517, 65507, 0, 65517, 65508, 0, 65517, 65509, 0, 65517, 65510, 0, 65517, 65511, 0, 65517, 65512, 0, 65517, 65513, 0, 65517, 65514, 0, 65517, 65515, 0, 65517, 65516, 0, 65517, 65517, 0, 65517, 65518, 0, 65517, 65519, 0, 65517, 65520, 0, 65517, 65521, 0, 65517, 65522, 0, 65517, 65523, 0, 65517, 65524, 0, 65517, 65525, 0, 65517, 65526, 0, 65517, 65527, 0, 65517, 65528, 0, 65517, 65529, 0, 65517, 65530, 0, 65517, 65531, 0, 65517, 65532, 0, 65517, 65533, 0, 65517, 65534, 0, 65517, 65535, 0, 65517, 0, 0, 65517, 1, 0, 65517, 2, 0, 65517, 3, 0, 65517, 4, 0, 65517, 5, 0, 65517, 6, 0, 65517, 7, 0, 65517, 8, 0, 65517, 9, 0, 65517, 10, 0, 65517, 11, 0, 65517, 12, 0, 65517, 13, 0, 65517, 14, 0, 65517, 15, 0, 65517, 16, 0, 65517, 17, 0, 65517, 18, 0, 65517, 19, 0, 65517, 20, 0, 65517, 21, 0, 65517, 22, 0, 65517, 23, 0, 65517, 24, 0, 65517, 25, 0, 65517, 26, 0, 65517, 27, 0, 65517, 28, 0, 65517, 29, 0, 65517, 30, 0, 65517, 31, 0, 65517, 32, 0, 65517, 33, 0, 65517, 34, 0, 65517, 35, 0, 65518, 65504, 0, 65518, 65505, 0, 65518, 65506, 0, 65518, 65507, 0, 65518, 65508, 0, 65518, 65509, 0, 65518, 65510, 0, 65518, 65511, 0, 65518, 65512, 0, 65518, 65513, 0, 65518, 65514, 0, 65518, 65515, 0, 65518, 65516, 0, 65518, 65517, 0, 65518, 65518, 0, 65518, 65519, 0, 65518, 65520, 0, 65518, 65521, 0, 65518, 65522, 0, 65518, 65523, 0, 65518, 65524, 0, 65518, 65525, 0, 65518, 65526, 0, 65518, 65527, 0, 65518, 65528, 0, 65518, 65529, 0, 65518, 65530, 0, 65518, 65531, 0, 65518, 65532, 0, 65518, 65533, 0, 65518, 65534, 0, 65518, 65535, 0, 65518, 0, 0, 65518, 1, 0, 65518, 2, 0, 65518, 3, 0, 65518, 4, 0, 65518, 5, 0, 65518, 6, 0, 65518, 7, 0, 65518, 8, 0, 65518, 9, 0, 65518, 10, 0, 65518, 11, 0, 65518, 12, 0, 65518, 13, 0, 65518, 14, 0, 65518, 15, 0, 65518, 16, 0, 65518, 17, 0, 65518, 18, 0, 65518, 19, 0, 65518, 20, 0, 65518, 21, 0, 65518, 22, 0, 65518, 23, 0, 65518, 24, 0, 65518, 25, 0, 65518, 26, 0, 65518, 27, 0, 65518, 28, 0, 65518, 29, 0, 65518, 30, 0, 65518, 31, 0, 65518, 32, 0, 65518, 33, 0, 65518, 34, 0, 65518, 35, 0, 65519, 65504, 0, 65519, 65505, 0, 65519, 65506, 0, 65519, 65507, 0, 65519, 65508, 0, 65519, 65509, 0, 65519, 65510, 0, 65519, 65511, 0, 65519, 65512, 0, 65519, 65513, 0, 65519, 65514, 0, 65519, 65515, 0, 65519, 65516, 0, 65519, 65517, 0, 65519, 65518, 0, 65519, 65519, 0, 65519, 65520, 0, 65519, 65521, 0, 65519, 65522, 0, 65519, 65523, 0, 65519, 65524, 0, 65519, 65525, 0, 65519, 65526, 0, 65519, 65527, 0, 65519, 65528, 0, 65519, 65529, 0, 65519, 65530, 0, 65519, 65531, 0, 65519, 65532, 0, 65519, 65533, 0, 65519, 65534, 0, 65519, 65535, 0, 65519, 0, 0, 65519, 1, 0, 65519, 2, 0, 65519, 3, 0, 65519, 4, 0, 65519, 5, 0, 65519, 6, 0, 65519, 7, 0, 65519, 8, 0, 65519, 9, 0, 65519, 10, 0, 65519, 11, 0, 65519, 12, 0, 65519, 13, 0, 65519, 14, 0, 65519, 15, 0, 65519, 16, 0, 65519, 17, 0, 65519, 18, 0, 65519, 19, 0, 65519, 20, 0, 65519, 21, 0, 65519, 22, 0, 65519, 23, 0, 65519, 24, 0, 65519, 25, 0, 65519, 26, 0, 65519, 27, 0, 65519, 28, 0, 65519, 29, 0, 65519, 30, 0, 65519, 31, 0, 65519, 32, 0, 65519, 33, 0, 65519, 34, 0, 65519, 35, 0, 65520, 65504, 0, 65520, 65505, 0, 65520, 65506, 0, 65520, 65507, 0, 65520, 65508, 0, 65520, 65509, 0, 65520, 65510, 0, 65520, 65511, 0, 65520, 65512, 0, 65520, 65513, 0, 65520, 65514, 0, 65520, 65515, 0, 65520, 65516, 0, 65520, 65517, 0, 65520, 65518, 0, 65520, 65519, 0, 65520, 65520, 0, 65520, 65521, 0, 65520, 65522, 0, 65520, 65523, 0, 65520, 65524, 0, 65520, 65525, 0, 65520, 65526, 0, 65520, 65527, 0, 65520, 65528, 0, 65520, 65529, 0, 65520, 65530, 0, 65520, 65531, 0, 65520, 65532, 0, 65520, 65533, 0, 65520, 65534, 0, 65520, 65535, 0, 65520, 0, 0, 65520, 1, 0, 65520, 2, 0, 65520, 3, 0, 65520, 4, 0, 65520, 5, 0, 65520, 6, 0, 65520, 7, 0, 65520, 8, 0, 65520, 9, 0, 65520, 10, 0, 65520, 11, 0, 65520, 12, 0, 65520, 13, 0, 65520, 14, 0, 65520, 15, 0, 65520, 16, 0, 65520, 17, 0, 65520, 18, 0, 65520, 19, 0, 65520, 20, 0, 65520, 21, 0, 65520, 22, 0, 65520, 23, 0, 65520, 24, 0, 65520, 25, 0, 65520, 26, 0, 65520, 27, 0, 65520, 28, 0, 65520, 29, 0, 65520, 30, 0, 65520, 31, 0, 65520, 32, 0, 65520, 33, 0, 65520, 34, 0, 65520, 35, 0, 65521, 65504, 0, 65521, 65505, 0, 65521, 65506, 0, 65521, 65507, 0, 65521, 65508, 0, 65521, 65509, 0, 65521, 65510, 0, 65521, 65511, 0, 65521, 65512, 0, 65521, 65513, 0, 65521, 65514, 0, 65521, 65515, 0, 65521, 65516, 0, 65521, 65517, 0, 65521, 65518, 0, 65521, 65519, 0, 65521, 65520, 0, 65521, 65521, 0, 65521, 65522, 0, 65521, 65523, 0, 65521, 65524, 0, 65521, 65525, 0, 65521, 65526, 0, 65521, 65527, 0, 65521, 65528, 0, 65521, 65529, 0, 65521, 65530, 0, 65521, 65531, 0, 65521, 65532, 0, 65521, 65533, 0, 65521, 65534, 0, 65521, 65535, 0, 65521, 0, 0, 65521, 1, 0, 65521, 2, 0, 65521, 3, 0, 65521, 4, 0, 65521, 5, 0, 65521, 6, 0, 65521, 7, 0, 65521, 8, 0, 65521, 9, 0, 65521, 10, 0, 65521, 11, 0, 65521, 12, 0, 65521, 13, 0, 65521, 14, 0, 65521, 15, 0, 65521, 16, 0, 65521, 17, 0, 65521, 18, 0, 65521, 19, 0, 65521, 20, 0, 65521, 21, 0, 65521, 22, 0, 65521, 23, 0, 65521, 24, 0, 65521, 25, 0, 65521, 26, 0, 65521, 27, 0, 65521, 28, 0, 65521, 29, 0, 65521, 30, 0, 65521, 31, 0, 65521, 32, 0, 65521, 33, 0, 65521, 34, 0, 65521, 35, 0, 65522, 65504, 0, 65522, 65505, 0, 65522, 65506, 0, 65522, 65507, 0, 65522, 65508, 0, 65522, 65509, 0, 65522, 65510, 0, 65522, 65511, 0, 65522, 65512, 0, 65522, 65513, 0, 65522, 65514, 0, 65522, 65515, 0, 65522, 65516, 0, 65522, 65517, 0, 65522, 65518, 0, 65522, 65519, 0, 65522, 65520, 0, 65522, 65521, 0, 65522, 65522, 0, 65522, 65523, 0, 65522, 65524, 0, 65522, 65525, 0, 65522, 65526, 0, 65522, 65527, 0, 65522, 65528, 0, 65522, 65529, 0, 65522, 65530, 0, 65522, 65531, 0, 65522, 65532, 0, 65522, 65533, 0, 65522, 65534, 0, 65522, 65535, 0, 65522, 0, 0, 65522, 1, 0, 65522, 2, 0, 65522, 3, 0, 65522, 4, 0, 65522, 5, 0, 65522, 6, 0, 65522, 7, 0, 65522, 8, 0, 65522, 9, 0, 65522, 10, 0, 65522, 11, 0, 65522, 12, 0, 65522, 13, 0, 65522, 14, 0, 65522, 15, 0, 65522, 16, 0, 65522, 17, 0, 65522, 18, 0, 65522, 19, 0, 65522, 20, 0, 65522, 21, 0, 65522, 22, 0, 65522, 23, 0, 65522, 24, 0, 65522, 25, 0, 65522, 26, 0, 65522, 27, 0, 65522, 28, 0, 65522, 29, 0, 65522, 30, 0, 65522, 31, 0, 65522, 32, 0, 65522, 33, 0, 65522, 34, 0, 65522, 35, 0, 65523, 65504, 0, 65523, 65505, 0, 65523, 65506, 0, 65523, 65507, 0, 65523, 65508, 0, 65523, 65509, 0, 65523, 65510, 0, 65523, 65511, 0, 65523, 65512, 0, 65523, 65513, 0, 65523, 65514, 0, 65523, 65515, 0, 65523, 65516, 0, 65523, 65517, 0, 65523, 65518, 0, 65523, 65519, 0, 65523, 65520, 0, 65523, 65521, 0, 65523, 65522, 0, 65523, 65523, 0, 65523, 65524, 0, 65523, 65525, 0, 65523, 65526, 0, 65523, 65527, 0, 65523, 65528, 0, 65523, 65529, 0, 65523, 65530, 0, 65523, 65531, 0, 65523, 65532, 0, 65523, 65533, 0, 65523, 65534, 0, 65523, 65535, 0, 65523, 0, 0, 65523, 1, 0, 65523, 2, 0, 65523, 3, 0, 65523, 4, 0, 65523, 5, 0, 65523, 6, 0, 65523, 7, 0, 65523, 8, 0, 65523, 9, 0, 65523, 10, 0, 65523, 11, 0, 65523, 12, 0, 65523, 13, 0, 65523, 14, 0, 65523, 15, 0, 65523, 16, 0, 65523, 17, 0, 65523, 18, 0, 65523, 19, 0, 65523, 20, 0, 65523, 21, 0, 65523, 22, 0, 65523, 23, 0, 65523, 24, 0, 65523, 25, 0, 65523, 26, 0, 65523, 27, 0, 65523, 28, 0, 65523, 29, 0, 65523, 30, 0, 65523, 31, 0, 65523, 32, 0, 65523, 33, 0, 65523, 34, 0, 65523, 35, 0, 65524, 65504, 0, 65524, 65505, 0, 65524, 65506, 0, 65524, 65507, 0, 65524, 65508, 0, 65524, 65509, 0, 65524, 65510, 0, 65524, 65511, 0, 65524, 65512, 0, 65524, 65513, 0, 65524, 65514, 0, 65524, 65515, 0, 65524, 65516, 0, 65524, 65517, 0, 65524, 65518, 0, 65524, 65519, 0, 65524, 65520, 0, 65524, 65521, 0, 65524, 65522, 0, 65524, 65523, 0, 65524, 65524, 0, 65524, 65525, 0, 65524, 65526, 0, 65524, 65527, 0, 65524, 65528, 0, 65524, 65529, 0, 65524, 65530, 0, 65524, 65531, 0, 65524, 65532, 0, 65524, 65533, 0, 65524, 65534, 0, 65524, 65535, 0, 65524, 0, 0, 65524, 1, 0, 65524, 2, 0, 65524, 3, 0, 65524, 4, 0, 65524, 5, 0, 65524, 6, 0, 65524, 7, 0, 65524, 8, 0, 65524, 9, 0, 65524, 10, 0, 65524, 11, 0, 65524, 12, 0, 65524, 13, 0, 65524, 14, 0, 65524, 15, 0, 65524, 16, 0, 65524, 17, 0, 65524, 18, 0, 65524, 19, 0, 65524, 20, 0, 65524, 21, 0, 65524, 22, 0, 65524, 23, 0, 65524, 24, 0, 65524, 25, 0, 65524, 26, 0, 65524, 27, 0, 65524, 28, 0, 65524, 29, 0, 65524, 30, 0, 65524, 31, 0, 65524, 32, 0, 65524, 33, 0, 65524, 34, 0, 65524, 35, 0, 65525, 65504, 0, 65525, 65505, 0, 65525, 65506, 0, 65525, 65507, 0, 65525, 65508, 0, 65525, 65509, 0, 65525, 65510, 0, 65525, 65511, 0, 65525, 65512, 0, 65525, 65513, 0, 65525, 65514, 0, 65525, 65515, 0, 65525, 65516, 0, 65525, 65517, 0, 65525, 65518, 0, 65525, 65519, 0, 65525, 65520, 0, 65525, 65521, 0, 65525, 65522, 0, 65525, 65523, 0, 65525, 65524, 0, 65525, 65525, 0, 65525, 65526, 0, 65525, 65527, 0, 65525, 65528, 0, 65525, 65529, 0, 65525, 65530, 0, 65525, 65531, 0, 65525, 65532, 0, 65525, 65533, 0, 65525, 65534, 0, 65525, 65535, 0, 65525, 0, 0, 65525, 1, 0, 65525, 2, 0, 65525, 3, 0, 65525, 4, 0, 65525, 5, 0, 65525, 6, 0, 65525, 7, 0, 65525, 8, 0, 65525, 9, 0, 65525, 10, 0, 65525, 11, 0, 65525, 12, 0, 65525, 13, 0, 65525, 14, 0, 65525, 15, 0, 65525, 16, 0, 65525, 17, 0, 65525, 18, 0, 65525, 19, 0, 65525, 20, 0, 65525, 21, 0, 65525, 22, 0, 65525, 23, 0, 65525, 24, 0, 65525, 25, 0, 65525, 26, 0, 65525, 27, 0, 65525, 28, 0, 65525, 29, 0, 65525, 30, 0, 65525, 31, 0, 65525, 32, 0, 65525, 33, 0, 65525, 34, 0, 65525, 35, 0, 65526, 65504, 0, 65526, 65505, 0, 65526, 65506, 0, 65526, 65507, 0, 65526, 65508, 0, 65526, 65509, 0, 65526, 65510, 0, 65526, 65511, 0, 65526, 65512, 0, 65526, 65513, 0, 65526, 65514, 0, 65526, 65515, 0, 65526, 65516, 0, 65526, 65517, 0, 65526, 65518, 0, 65526, 65519, 0, 65526, 65520, 0, 65526, 65521, 0, 65526, 65522, 0, 65526, 65523, 0, 65526, 65524, 0, 65526, 65525, 0, 65526, 65526, 0, 65526, 65527, 0, 65526, 65528, 0, 65526, 65529, 0, 65526, 65530, 0, 65526, 65531, 0, 65526, 65532, 0, 65526, 65533, 0, 65526, 65534, 0, 65526, 65535, 0, 65526, 0, 0, 65526, 1, 0, 65526, 2, 0, 65526, 3, 0, 65526, 4, 0, 65526, 5, 0, 65526, 6, 0, 65526, 7, 0, 65526, 8, 0, 65526, 9, 0, 65526, 10, 0, 65526, 11, 0, 65526, 12, 0, 65526, 13, 0, 65526, 14, 0, 65526, 15, 0, 65526, 16, 0, 65526, 17, 0, 65526, 18, 0, 65526, 19, 0, 65526, 20, 0, 65526, 21, 0, 65526, 22, 0, 65526, 23, 0, 65526, 24, 0, 65526, 25, 0, 65526, 26, 0, 65526, 27, 0, 65526, 28, 0, 65526, 29, 0, 65526, 30, 0, 65526, 31, 0, 65526, 32, 0, 65526, 33, 0, 65526, 34, 0, 65526, 35, 0, 65527, 65504, 0, 65527, 65505, 0, 65527, 65506, 0, 65527, 65507, 0, 65527, 65508, 0, 65527, 65509, 0, 65527, 65510, 0, 65527, 65511, 0, 65527, 65512, 0, 65527, 65513, 0, 65527, 65514, 0, 65527, 65515, 0, 65527, 65516, 0, 65527, 65517, 0, 65527, 65518, 0, 65527, 65519, 0, 65527, 65520, 0, 65527, 65521, 0, 65527, 65522, 0, 65527, 65523, 0, 65527, 65524, 0, 65527, 65525, 0, 65527, 65526, 0, 65527, 65527, 0, 65527, 65528, 0, 65527, 65529, 0, 65527, 65530, 0, 65527, 65531, 0, 65527, 65532, 0, 65527, 65533, 0, 65527, 65534, 0, 65527, 65535, 0, 65527, 0, 0, 65527, 1, 0, 65527, 2, 0, 65527, 3, 0, 65527, 4, 0, 65527, 5, 0, 65527, 6, 0, 65527, 7, 0, 65527, 8, 0, 65527, 9, 0, 65527, 10, 0, 65527, 11, 0, 65527, 12, 0, 65527, 13, 0, 65527, 14, 0, 65527, 15, 0, 65527, 16, 0, 65527, 17, 0, 65527, 18, 0, 65527, 19, 0, 65527, 20, 0, 65527, 21, 0, 65527, 22, 0, 65527, 23, 0, 65527, 24, 0, 65527, 25, 0, 65527, 26, 0, 65527, 27, 0, 65527, 28, 0, 65527, 29, 0, 65527, 30, 0, 65527, 31, 0, 65527, 32, 0, 65527, 33, 0, 65527, 34, 0, 65527, 35, 0, 65528, 65504, 0, 65528, 65505, 0, 65528, 65506, 0, 65528, 65507, 0, 65528, 65508, 0, 65528, 65509, 0, 65528, 65510, 0, 65528, 65511, 0, 65528, 65512, 0, 65528, 65513, 0, 65528, 65514, 0, 65528, 65515, 0, 65528, 65516, 0, 65528, 65517, 0, 65528, 65518, 0, 65528, 65519, 0, 65528, 65520, 0, 65528, 65521, 0, 65528, 65522, 0, 65528, 65523, 0, 65528, 65524, 0, 65528, 65525, 0, 65528, 65526, 0, 65528, 65527, 0, 65528, 65528, 0, 65528, 65529, 0, 65528, 65530, 0, 65528, 65531, 0, 65528, 65532, 0, 65528, 65533, 0, 65528, 65534, 0, 65528, 65535, 0, 65528, 0, 0, 65528, 1, 0, 65528, 2, 0, 65528, 3, 0, 65528, 4, 0, 65528, 5, 0, 65528, 6, 0, 65528, 7, 0, 65528, 8, 0, 65528, 9, 0, 65528, 10, 0, 65528, 11, 0, 65528, 12, 0, 65528, 13, 0, 65528, 14, 0, 65528, 15, 0, 65528, 16, 0, 65528, 17, 0, 65528, 18, 0, 65528, 19, 0, 65528, 20, 0, 65528, 21, 0, 65528, 22, 0, 65528, 23, 0, 65528, 24, 0, 65528, 25, 0, 65528, 26, 0, 65528, 27, 0, 65528, 28, 0, 65528, 29, 0, 65528, 30, 0, 65528, 31, 0, 65528, 32, 0, 65528, 33, 0, 65528, 34, 0, 65528, 35, 0, 65529, 65504, 0, 65529, 65505, 0, 65529, 65506, 0, 65529, 65507, 0, 65529, 65508, 0, 65529, 65509, 0, 65529, 65510, 0, 65529, 65511, 0, 65529, 65512, 0, 65529, 65513, 0, 65529, 65514, 0, 65529, 65515, 0, 65529, 65516, 0, 65529, 65517, 0, 65529, 65518, 0, 65529, 65519, 0, 65529, 65520, 0, 65529, 65521, 0, 65529, 65522, 0, 65529, 65523, 0, 65529, 65524, 0, 65529, 65525, 0, 65529, 65526, 0, 65529, 65527, 0, 65529, 65528, 0, 65529, 65529, 0, 65529, 65530, 0, 65529, 65531, 0, 65529, 65532, 0, 65529, 65533, 0, 65529, 65534, 0, 65529, 65535, 0, 65529, 0, 0, 65529, 1, 0, 65529, 2, 0, 65529, 3, 0, 65529, 4, 0, 65529, 5, 0, 65529, 6, 0, 65529, 7, 0, 65529, 8, 0, 65529, 9, 0, 65529, 10, 0, 65529, 11, 0, 65529, 12, 0, 65529, 13, 0, 65529, 14, 0, 65529, 15, 0, 65529, 16, 0, 65529, 17, 0, 65529, 18, 0, 65529, 19, 0, 65529, 20, 0, 65529, 21, 0, 65529, 22, 0, 65529, 23, 0, 65529, 24, 0, 65529, 25, 0, 65529, 26, 0, 65529, 27, 0, 65529, 28, 0, 65529, 29, 0, 65529, 30, 0, 65529, 31, 0, 65529, 32, 0, 65529, 33, 0, 65529, 34, 0, 65529, 35, 0, 65530, 65504, 0, 65530, 65505, 0, 65530, 65506, 0, 65530, 65507, 0, 65530, 65508, 0, 65530, 65509, 0, 65530, 65510, 0, 65530, 65511, 0, 65530, 65512, 0, 65530, 65513, 0, 65530, 65514, 0, 65530, 65515, 0, 65530, 65516, 0, 65530, 65517, 0, 65530, 65518, 0, 65530, 65519, 0, 65530, 65520, 0, 65530, 65521, 0, 65530, 65522, 0, 65530, 65523, 0, 65530, 65524, 0, 65530, 65525, 0, 65530, 65526, 0, 65530, 65527, 0, 65530, 65528, 0, 65530, 65529, 0, 65530, 65530, 0, 65530, 65531, 0, 65530, 65532, 0, 65530, 65533, 0, 65530, 65534, 0, 65530, 65535, 0, 65530, 0, 0, 65530, 1, 0, 65530, 2, 0, 65530, 3, 0, 65530, 4, 0, 65530, 5, 0, 65530, 6, 0, 65530, 7, 0, 65530, 8, 0, 65530, 9, 0, 65530, 10, 0, 65530, 11, 0, 65530, 12, 0, 65530, 13, 0, 65530, 14, 0, 65530, 15, 0, 65530, 16, 0, 65530, 17, 0, 65530, 18, 0, 65530, 19, 0, 65530, 20, 0, 65530, 21, 0, 65530, 22, 0, 65530, 23, 0, 65530, 24, 0, 65530, 25, 0, 65530, 26, 0, 65530, 27, 0, 65530, 28, 0, 65530, 29, 0, 65530, 30, 0, 65530, 31, 0, 65530, 32, 0, 65530, 33, 0, 65530, 34, 0, 65530, 35, 0, 65531, 65504, 0, 65531, 65505, 0, 65531, 65506, 0, 65531, 65507, 0, 65531, 65508, 0, 65531, 65509, 0, 65531, 65510, 0, 65531, 65511, 0, 65531, 65512, 0, 65531, 65513, 0, 65531, 65514, 0, 65531, 65515, 0, 65531, 65516, 0, 65531, 65517, 0, 65531, 65518, 0, 65531, 65519, 0, 65531, 65520, 0, 65531, 65521, 0, 65531, 65522, 0, 65531, 65523, 0, 65531, 65524, 0, 65531, 65525, 0, 65531, 65526, 0, 65531, 65527, 0, 65531, 65528, 0, 65531, 65529, 0, 65531, 65530, 0, 65531, 65531, 0, 65531, 65532, 0, 65531, 65533, 0, 65531, 65534, 0, 65531, 65535, 0, 65531, 0, 0, 65531, 1, 0, 65531, 2, 0, 65531, 3, 0, 65531, 4, 0, 65531, 5, 0, 65531, 6, 0, 65531, 7, 0, 65531, 8, 0, 65531, 9, 0, 65531, 10, 0, 65531, 11, 0, 65531, 12, 0, 65531, 13, 0, 65531, 14, 0, 65531, 15, 0, 65531, 16, 0, 65531, 17, 0, 65531, 18, 0, 65531, 19, 0, 65531, 20, 0, 65531, 21, 0, 65531, 22, 0, 65531, 23, 0, 65531, 24, 0, 65531, 25, 0, 65531, 26, 0, 65531, 27, 0, 65531, 28, 0, 65531, 29, 0, 65531, 30, 0, 65531, 31, 0, 65531, 32, 0, 65531, 33, 0, 65531, 34, 0, 65531, 35, 0, 65532, 65504, 0, 65532, 65505, 0, 65532, 65506, 0, 65532, 65507, 0, 65532, 65508, 0, 65532, 65509, 0, 65532, 65510, 0, 65532, 65511, 0, 65532, 65512, 0, 65532, 65513, 0, 65532, 65514, 0, 65532, 65515, 0, 65532, 65516, 0, 65532, 65517, 0, 65532, 65518, 0, 65532, 65519, 0, 65532, 65520, 0, 65532, 65521, 0, 65532, 65522, 0, 65532, 65523, 0, 65532, 65524, 0, 65532, 65525, 0, 65532, 65526, 0, 65532, 65527, 0, 65532, 65528, 0, 65532, 65529, 0, 65532, 65530, 0, 65532, 65531, 0, 65532, 65532, 0, 65532, 65533, 0, 65532, 65534, 0, 65532, 65535, 0, 65532, 0, 0, 65532, 1, 0, 65532, 2, 0, 65532, 3, 0, 65532, 4, 0, 65532, 5, 0, 65532, 6, 0, 65532, 7, 0, 65532, 8, 0, 65532, 9, 0, 65532, 10, 0, 65532, 11, 0, 65532, 12, 0, 65532, 13, 0, 65532, 14, 0, 65532, 15, 0, 65532, 16, 0, 65532, 17, 0, 65532, 18, 0, 65532, 19, 0, 65532, 20, 0, 65532, 21, 0, 65532, 22, 0, 65532, 23, 0, 65532, 24, 0, 65532, 25, 0, 65532, 26, 0, 65532, 27, 0, 65532, 28, 0, 65532, 29, 0, 65532, 30, 0, 65532, 31, 0, 65532, 32, 0, 65532, 33, 0, 65532, 34, 0, 65532, 35, 0, 65533, 65504, 0, 65533, 65505, 0, 65533, 65506, 0, 65533, 65507, 0, 65533, 65508, 0, 65533, 65509, 0, 65533, 65510, 0, 65533, 65511, 0, 65533, 65512, 0, 65533, 65513, 0, 65533, 65514, 0, 65533, 65515, 0, 65533, 65516, 0, 65533, 65517, 0, 65533, 65518, 0, 65533, 65519, 0, 65533, 65520, 0, 65533, 65521, 0, 65533, 65522, 0, 65533, 65523, 0, 65533, 65524, 0, 65533, 65525, 0, 65533, 65526, 0, 65533, 65527, 0, 65533, 65528, 0, 65533, 65529, 0, 65533, 65530, 0, 65533, 65531, 0, 65533, 65532, 0, 65533, 65533, 0, 65533, 65534, 0, 65533, 65535, 0, 65533, 0, 0, 65533, 1, 0, 65533, 2, 0, 65533, 3, 0, 65533, 4, 0, 65533, 5, 0, 65533, 6, 0, 65533, 7, 0, 65533, 8, 0, 65533, 9, 0, 65533, 10, 0, 65533, 11, 0, 65533, 12, 0, 65533, 13, 0, 65533, 14, 0, 65533, 15, 0, 65533, 16, 0, 65533, 17, 0, 65533, 18, 0, 65533, 19, 0, 65533, 20, 0, 65533, 21, 0, 65533, 22, 0, 65533, 23, 0, 65533, 24, 0, 65533, 25, 0, 65533, 26, 0, 65533, 27, 0, 65533, 28, 0, 65533, 29, 0, 65533, 30, 0, 65533, 31, 0, 65533, 32, 0, 65533, 33, 0, 65533, 34, 0, 65533, 35, 0, 65534, 65504, 0, 65534, 65505, 0, 65534, 65506, 0, 65534, 65507, 0, 65534, 65508, 0, 65534, 65509, 0, 65534, 65510, 0, 65534, 65511, 0, 65534, 65512, 0, 65534, 65513, 0, 65534, 65514, 0, 65534, 65515, 0, 65534, 65516, 0, 65534, 65517, 0, 65534, 65518, 0, 65534, 65519, 0, 65534, 65520, 0, 65534, 65521, 0, 65534, 65522, 0, 65534, 65523, 0, 65534, 65524, 0, 65534, 65525, 0, 65534, 65526, 0, 65534, 65527, 0, 65534, 65528, 0, 65534, 65529, 0, 65534, 65530, 0, 65534, 65531, 0, 65534, 65532, 0, 65534, 65533, 0, 65534, 65534, 0, 65534, 65535, 0, 65534, 0, 0, 65534, 1, 0, 65534, 2, 0, 65534, 3, 0, 65534, 4, 0, 65534, 5, 0, 65534, 6, 0, 65534, 7, 0, 65534, 8, 0, 65534, 9, 0, 65534, 10, 0, 65534, 11, 0, 65534, 12, 0, 65534, 13, 0, 65534, 14, 0, 65534, 15, 0, 65534, 16, 0, 65534, 17, 0, 65534, 18, 0, 65534, 19, 0, 65534, 20, 0, 65534, 21, 0, 65534, 22, 0, 65534, 23, 0, 65534, 24, 0, 65534, 25, 0, 65534, 26, 0, 65534, 27, 0, 65534, 28, 0, 65534, 29, 0, 65534, 30, 0, 65534, 31, 0, 65534, 32, 0, 65534, 33, 0, 65534, 34, 0, 65534, 35, 0, 65535, 65504, 0, 65535, 65505, 0, 65535, 65506, 0, 65535, 65507, 0, 65535, 65508, 0, 65535, 65509, 0, 65535, 65510, 0, 65535, 65511, 0, 65535, 65512, 0, 65535, 65513, 0, 65535, 65514, 0, 65535, 65515, 0, 65535, 65516, 0, 65535, 65517, 0, 65535, 65518, 0, 65535, 65519, 0, 65535, 65520, 0, 65535, 65521, 0, 65535, 65522, 0, 65535, 65523, 0, 65535, 65524, 0, 65535, 65525, 0, 65535, 65526, 0, 65535, 65527, 0, 65535, 65528, 0, 65535, 65529, 0, 65535, 65530, 0, 65535, 65531, 0, 65535, 65532, 0, 65535, 65533, 0, 65535, 65534, 0, 65535, 65535, 0, 65535, 0, 0, 65535, 1, 0, 65535, 2, 0, 65535, 3, 0, 65535, 4, 0, 65535, 5, 0, 65535, 6, 0, 65535, 7, 0, 65535, 8, 0, 65535, 9, 0, 65535, 10, 0, 65535, 11, 0, 65535, 12, 0, 65535, 13, 0, 65535, 14, 0, 65535, 15, 0, 65535, 16, 0, 65535, 17, 0, 65535, 18, 0, 65535, 19, 0, 65535, 20, 0, 65535, 21, 0, 65535, 22, 0, 65535, 23, 0, 65535, 24, 0, 65535, 25, 0, 65535, 26, 0, 65535, 27, 0, 65535, 28, 0, 65535, 29, 0, 65535, 30, 0, 65535, 31, 0, 65535, 32, 0, 65535, 33, 0, 65535, 34, 0, 65535, 35, 0, 0, 65504, 0, 0, 65505, 0, 0, 65506, 0, 0, 65507, 0, 0, 65508, 0, 0, 65509, 0, 0, 65510, 0, 0, 65511, 0, 0, 65512, 0, 0, 65513, 0, 0, 65514, 0, 0, 65515, 0, 0, 65516, 0, 0, 65517, 0, 0, 65518, 0, 0, 65519, 0, 0, 65520, 0, 0, 65521, 0, 0, 65522, 0, 0, 65523, 0, 0, 65524, 0, 0, 65525, 0, 0, 65526, 0, 0, 65527, 0, 0, 65528, 0, 0, 65529, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 21, 0, 0, 22, 0, 0, 23, 0, 0, 24, 0, 0, 25, 0, 0, 26, 0, 0, 27, 0, 0, 28, 0, 0, 29, 0, 0, 30, 0, 0, 31, 0, 0, 32, 0, 0, 33, 0, 0, 34, 0, 0, 35, 0, 1, 65504, 0, 1, 65505, 0, 1, 65506, 0, 1, 65507, 0, 1, 65508, 0, 1, 65509, 0, 1, 65510, 0, 1, 65511, 0, 1, 65512, 0, 1, 65513, 0, 1, 65514, 0, 1, 65515, 0, 1, 65516, 0, 1, 65517, 0, 1, 65518, 0, 1, 65519, 0, 1, 65520, 0, 1, 65521, 0, 1, 65522, 0, 1, 65523, 0, 1, 65524, 0, 1, 65525, 0, 1, 65526, 0, 1, 65527, 0, 1, 65528, 0, 1, 65529, 0, 1, 65530, 0, 1, 65531, 0, 1, 65532, 0, 1, 65533, 0, 1, 65534, 0, 1, 65535, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 4, 0, 1, 5, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 1, 9, 0, 1, 10, 0, 1, 11, 0, 1, 12, 0, 1, 13, 0, 1, 14, 0, 1, 15, 0, 1, 16, 0, 1, 17, 0, 1, 18, 0, 1, 19, 0, 1, 20, 0, 1, 21, 0, 1, 22, 0, 1, 23, 0, 1, 24, 0, 1, 25, 0, 1, 26, 0, 1, 27, 0, 1, 28, 0, 1, 29, 0, 1, 30, 0, 1, 31, 0, 1, 32, 0, 1, 33, 0, 1, 34, 0, 1, 35, 0, 2, 65504, 0, 2, 65505, 0, 2, 65506, 0, 2, 65507, 0, 2, 65508, 0, 2, 65509, 0, 2, 65510, 0, 2, 65511, 0, 2, 65512, 0, 2, 65513, 0, 2, 65514, 0, 2, 65515, 0, 2, 65516, 0, 2, 65517, 0, 2, 65518, 0, 2, 65519, 0, 2, 65520, 0, 2, 65521, 0, 2, 65522, 0, 2, 65523, 0, 2, 65524, 0, 2, 65525, 0, 2, 65526, 0, 2, 65527, 0, 2, 65528, 0, 2, 65529, 0, 2, 65530, 0, 2, 65531, 0, 2, 65532, 0, 2, 65533, 0, 2, 65535, 0, 2, 0, 0, 2, 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 2, 10, 0, 2, 11, 0, 2, 12, 0, 2, 13, 0, 2, 14, 0, 2, 15, 0, 2, 16, 0, 2, 17, 0, 2, 18, 0, 2, 19, 0, 2, 20, 0, 2, 21, 0, 2, 22, 0, 2, 23, 0, 2, 24, 0, 2, 25, 0, 2, 26, 0, 2, 27, 0, 2, 28, 0, 2, 29, 0, 2, 30, 0, 2, 31, 0, 2, 32, 0, 2, 33, 0, 2, 34, 0, 2, 35, 0, 3, 65504, 0, 3, 65505, 0, 3, 65506, 0, 3, 65507, 0, 3, 65508, 0, 3, 65509, 0, 3, 65510, 0, 3, 65511, 0, 3, 65512, 0, 3, 65513, 0, 3, 65514, 0, 3, 65515, 0, 3, 65516, 0, 3, 65517, 0, 3, 65518, 0, 3, 65519, 0, 3, 65520, 0, 3, 65521, 0, 3, 65522, 0, 3, 65523, 0, 3, 65524, 0, 3, 65525, 0, 3, 65526, 0, 3, 65527, 0, 3, 65528, 0, 3, 65529, 0, 3, 65530, 0, 3, 65531, 0, 3, 65533, 0, 3, 65534, 0, 3, 65535, 0, 3, 0, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 5, 0, 3, 6, 0, 3, 7, 0, 3, 8, 0, 3, 9, 0, 3, 10, 0, 3, 11, 0, 3, 12, 0, 3, 13, 0, 3, 14, 0, 3, 15, 0, 3, 16, 0, 3, 17, 0, 3, 18, 0, 3, 19, 0, 3, 20, 0, 3, 21, 0, 3, 22, 0, 3, 23, 0, 3, 24, 0, 3, 25, 0, 3, 26, 0, 3, 27, 0, 3, 28, 0, 3, 29, 0, 3, 30, 0, 3, 31, 0, 3, 32, 0, 3, 33, 0, 3, 34, 0, 3, 35, 0, 4, 65504, 0, 4, 65505, 0, 4, 65506, 0, 4, 65507, 0, 4, 65508, 0, 4, 65509, 0, 4, 65510, 0, 4, 65511, 0, 4, 65512, 0, 4, 65513, 0, 4, 65514, 0, 4, 65515, 0, 4, 65516, 0, 4, 65517, 0, 4, 65518, 0, 4, 65519, 0, 4, 65520, 0, 4, 65521, 0, 4, 65522, 0, 4, 65523, 0, 4, 65524, 0, 4, 65525, 0, 4, 65526, 0, 4, 65527, 0, 4, 65528, 0, 4, 65529, 0, 4, 65530, 0, 4, 65531, 0, 4, 65532, 0, 4, 65533, 0, 4, 65534, 0, 4, 65535, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 4, 10, 0, 4, 11, 0, 4, 12, 0, 4, 13, 0, 4, 14, 0, 4, 15, 0, 4, 16, 0, 4, 17, 0, 4, 18, 0, 4, 19, 0, 4, 20, 0, 4, 21, 0, 4, 22, 0, 4, 23, 0, 4, 24, 0, 4, 25, 0, 4, 26, 0, 4, 27, 0, 4, 28, 0, 4, 29, 0, 4, 30, 0, 4, 31, 0, 4, 32, 0, 4, 33, 0, 4, 34, 0, 4, 35, 0, 5, 65504, 0, 5, 65505, 0, 5, 65506, 0, 5, 65507, 0, 5, 65508, 0, 5, 65509, 0, 5, 65510, 0, 5, 65511, 0, 5, 65512, 0, 5, 65513, 0, 5, 65514, 0, 5, 65515, 0, 5, 65516, 0, 5, 65517, 0, 5, 65518, 0, 5, 65519, 0, 5, 65520, 0, 5, 65521, 0, 5, 65522, 0, 5, 65523, 0, 5, 65524, 0, 5, 65525, 0, 5, 65526, 0, 5, 65527, 0, 5, 65528, 0, 5, 65529, 0, 5, 65530, 0, 5, 65531, 0, 5, 65532, 0, 5, 65533, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 5, 10, 0, 5, 11, 0, 5, 12, 0, 5, 13, 0, 5, 14, 0, 5, 15, 0, 5, 16, 0, 5, 17, 0, 5, 18, 0, 5, 19, 0, 5, 20, 0, 5, 21, 0, 5, 22, 0, 5, 23, 0, 5, 24, 0, 5, 25, 0, 5, 26, 0, 5, 27, 0, 5, 28, 0, 5, 29, 0, 5, 30, 0, 5, 31, 0, 5, 32, 0, 5, 33, 0, 5, 34, 0, 5, 35, 0, 6, 65504, 0, 6, 65505, 0, 6, 65506, 0, 6, 65507, 0, 6, 65508, 0, 6, 65509, 0, 6, 65510, 0, 6, 65511, 0, 6, 65512, 0, 6, 65513, 0, 6, 65514, 0, 6, 65515, 0, 6, 65516, 0, 6, 65517, 0, 6, 65518, 0, 6, 65519, 0, 6, 65520, 0, 6, 65521, 0, 6, 65522, 0, 6, 65523, 0, 6, 65524, 0, 6, 65525, 0, 6, 65526, 0, 6, 65527, 0, 6, 65528, 0, 6, 65529, 0, 6, 65530, 0, 6, 65531, 0, 6, 65532, 0, 6, 65533, 0, 6, 65534, 0, 6, 65535, 0, 6, 0, 0, 6, 1, 0, 6, 2, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 6, 10, 0, 6, 11, 0, 6, 12, 0, 6, 13, 0, 6, 14, 0, 6, 15, 0, 6, 16, 0, 6, 17, 0, 6, 18, 0, 6, 19, 0, 6, 20, 0, 6, 21, 0, 6, 22, 0, 6, 23, 0, 6, 24, 0, 6, 25, 0, 6, 26, 0, 6, 27, 0, 6, 28, 0, 6, 29, 0, 6, 30, 0, 6, 31, 0, 6, 32, 0, 6, 33, 0, 6, 34, 0, 6, 35, 0, 7, 65504, 0, 7, 65505, 0, 7, 65506, 0, 7, 65507, 0, 7, 65508, 0, 7, 65509, 0, 7, 65510, 0, 7, 65511, 0, 7, 65512, 0, 7, 65513, 0, 7, 65514, 0, 7, 65515, 0, 7, 65516, 0, 7, 65517, 0, 7, 65518, 0, 7, 65519, 0, 7, 65520, 0, 7, 65521, 0, 7, 65522, 0, 7, 65523, 0, 7, 65524, 0, 7, 65525, 0, 7, 65526, 0, 7, 65527, 0, 7, 65528, 0, 7, 65529, 0, 7, 65530, 0, 7, 65531, 0, 7, 65532, 0, 7, 65533, 0, 7, 65534, 0, 7, 65535, 0, 7, 0, 0, 7, 1, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 7, 10, 0, 7, 11, 0, 7, 12, 0, 7, 13, 0, 7, 14, 0, 7, 15, 0, 7, 16, 0, 7, 17, 0, 7, 18, 0, 7, 19, 0, 7, 20, 0, 7, 21, 0, 7, 22, 0, 7, 23, 0, 7, 24, 0, 7, 25, 0, 7, 26, 0, 7, 27, 0, 7, 28, 0, 7, 29, 0, 7, 30, 0, 7, 31, 0, 7, 32, 0, 7, 33, 0, 7, 34, 0, 7, 35, 0, 8, 65504, 0, 8, 65505, 0, 8, 65506, 0, 8, 65507, 0, 8, 65508, 0, 8, 65509, 0, 8, 65510, 0, 8, 65511, 0, 8, 65512, 0, 8, 65513, 0, 8, 65514, 0, 8, 65515, 0, 8, 65516, 0, 8, 65517, 0, 8, 65518, 0, 8, 65519, 0, 8, 65520, 0, 8, 65521, 0, 8, 65522, 0, 8, 65523, 0, 8, 65524, 0, 8, 65525, 0, 8, 65526, 0, 8, 65527, 0, 8, 65528, 0, 8, 65529, 0, 8, 65530, 0, 8, 65531, 0, 8, 65532, 0, 8, 65533, 0, 8, 65534, 0, 8, 65535, 0, 8, 0, 0, 8, 1, 0, 8, 2, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 8, 10, 0, 8, 11, 0, 8, 12, 0, 8, 13, 0, 8, 14, 0, 8, 15, 0, 8, 16, 0, 8, 17, 0, 8, 18, 0, 8, 19, 0, 8, 20, 0, 8, 21, 0, 8, 22, 0, 8, 23, 0, 8, 24, 0, 8, 25, 0, 8, 26, 0, 8, 27, 0, 8, 28, 0, 8, 29, 0, 8, 30, 0, 8, 31, 0, 8, 32, 0, 8, 33, 0, 8, 34, 0, 8, 35, 0, 9, 65504, 0, 9, 65505, 0, 9, 65506, 0, 9, 65507, 0, 9, 65508, 0, 9, 65509, 0, 9, 65510, 0, 9, 65511, 0, 9, 65512, 0, 9, 65513, 0, 9, 65514, 0, 9, 65515, 0, 9, 65516, 0, 9, 65517, 0, 9, 65518, 0, 9, 65519, 0, 9, 65520, 0, 9, 65521, 0, 9, 65522, 0, 9, 65523, 0, 9, 65524, 0, 9, 65525, 0, 9, 65526, 0, 9, 65527, 0, 9, 65528, 0, 9, 65529, 0, 9, 65530, 0, 9, 65531, 0, 9, 65532, 0, 9, 65533, 0, 9, 65534, 0, 9, 65535, 0, 9, 0, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0, 9, 10, 0, 9, 11, 0, 9, 12, 0, 9, 13, 0, 9, 14, 0, 9, 15, 0, 9, 16, 0, 9, 17, 0, 9, 18, 0, 9, 19, 0, 9, 20, 0, 9, 21, 0, 9, 22, 0, 9, 23, 0, 9, 24, 0, 9, 25, 0, 9, 26, 0, 9, 27, 0, 9, 28, 0, 9, 29, 0, 9, 30, 0, 9, 31, 0, 9, 32, 0, 9, 33, 0, 9, 34, 0, 9, 35, 0, 10, 65504, 0, 10, 65505, 0, 10, 65506, 0, 10, 65507, 0, 10, 65508, 0, 10, 65509, 0, 10, 65510, 0, 10, 65511, 0, 10, 65512, 0, 10, 65513, 0, 10, 65514, 0, 10, 65515, 0, 10, 65516, 0, 10, 65517, 0, 10, 65518, 0, 10, 65519, 0, 10, 65520, 0, 10, 65521, 0, 10, 65522, 0, 10, 65523, 0, 10, 65524, 0, 10, 65525, 0, 10, 65526, 0, 10, 65527, 0, 10, 65528, 0, 10, 65529, 0, 10, 65530, 0, 10, 65531, 0, 10, 65532, 0, 10, 65533, 0, 10, 65534, 0, 10, 65535, 0, 10, 0, 0, 10, 1, 0, 10, 2, 0, 10, 3, 0, 10, 4, 0, 10, 5, 0, 10, 6, 0, 10, 7, 0, 10, 8, 0, 10, 9, 0, 10, 10, 0, 10, 11, 0, 10, 12, 0, 10, 13, 0, 10, 14, 0, 10, 15, 0, 10, 16, 0, 10, 17, 0, 10, 18, 0, 10, 19, 0, 10, 20, 0, 10, 21, 0, 10, 22, 0, 10, 23, 0, 10, 24, 0, 10, 25, 0, 10, 26, 0, 10, 27, 0, 10, 28, 0, 10, 29, 0, 10, 30, 0, 10, 31, 0, 10, 32, 0, 10, 33, 0, 10, 34, 0, 10, 35, 0, 11, 65504, 0, 11, 65505, 0, 11, 65506, 0, 11, 65507, 0, 11, 65508, 0, 11, 65509, 0, 11, 65510, 0, 11, 65511, 0, 11, 65512, 0, 11, 65513, 0, 11, 65514, 0, 11, 65515, 0, 11, 65516, 0, 11, 65517, 0, 11, 65518, 0, 11, 65519, 0, 11, 65520, 0, 11, 65521, 0, 11, 65522, 0, 11, 65523, 0, 11, 65524, 0, 11, 65525, 0, 11, 65526, 0, 11, 65527, 0, 11, 65528, 0, 11, 65529, 0, 11, 65530, 0, 11, 65531, 0, 11, 65532, 0, 11, 65533, 0, 11, 65534, 0, 11, 65535, 0, 11, 0, 0, 11, 1, 0, 11, 2, 0, 11, 3, 0, 11, 4, 0, 11, 5, 0, 11, 6, 0, 11, 7, 0, 11, 8, 0, 11, 9, 0, 11, 10, 0, 11, 11, 0, 11, 12, 0, 11, 13, 0, 11, 14, 0, 11, 15, 0, 11, 16, 0, 11, 17, 0, 11, 18, 0, 11, 19, 0, 11, 20, 0, 11, 21, 0, 11, 22, 0, 11, 23, 0, 11, 24, 0, 11, 25, 0, 11, 26, 0, 11, 27, 0, 11, 28, 0, 11, 29, 0, 11, 30, 0, 11, 31, 0, 11, 32, 0, 11, 33, 0, 11, 34, 0, 11, 35, 0, 12, 65504, 0, 12, 65505, 0, 12, 65506, 0, 12, 65507, 0, 12, 65508, 0, 12, 65509, 0, 12, 65510, 0, 12, 65511, 0, 12, 65512, 0, 12, 65513, 0, 12, 65514, 0, 12, 65515, 0, 12, 65516, 0, 12, 65517, 0, 12, 65518, 0, 12, 65519, 0, 12, 65520, 0, 12, 65521, 0, 12, 65522, 0, 12, 65523, 0, 12, 65524, 0, 12, 65525, 0, 12, 65526, 0, 12, 65527, 0, 12, 65528, 0, 12, 65529, 0, 12, 65530, 0, 12, 65531, 0, 12, 65532, 0, 12, 65533, 0, 12, 65534, 0, 12, 65535, 0, 12, 0, 0, 12, 1, 0, 12, 2, 0, 12, 3, 0, 12, 4, 0, 12, 5, 0, 12, 6, 0, 12, 7, 0, 12, 8, 0, 12, 9, 0, 12, 10, 0, 12, 11, 0, 12, 12, 0, 12, 13, 0, 12, 14, 0, 12, 15, 0, 12, 16, 0, 12, 17, 0, 12, 18, 0, 12, 19, 0, 12, 20, 0, 12, 21, 0, 12, 22, 0, 12, 23, 0, 12, 24, 0, 12, 25, 0, 12, 26, 0, 12, 27, 0, 12, 28, 0, 12, 29, 0, 12, 30, 0, 12, 31, 0, 12, 32, 0, 12, 33, 0, 12, 34, 0, 12, 35, 0, 13, 65504, 0, 13, 65505, 0, 13, 65506, 0, 13, 65507, 0, 13, 65508, 0, 13, 65509, 0, 13, 65510, 0, 13, 65511, 0, 13, 65512, 0, 13, 65513, 0, 13, 65514, 0, 13, 65515, 0, 13, 65516, 0, 13, 65517, 0, 13, 65518, 0, 13, 65519, 0, 13, 65520, 0, 13, 65521, 0, 13, 65522, 0, 13, 65523, 0, 13, 65524, 0, 13, 65525, 0, 13, 65526, 0, 13, 65527, 0, 13, 65528, 0, 13, 65529, 0, 13, 65530, 0, 13, 65531, 0, 13, 65532, 0, 13, 65533, 0, 13, 65534, 0, 13, 65535, 0, 13, 0, 0, 13, 1, 0, 13, 2, 0, 13, 3, 0, 13, 4, 0, 13, 5, 0, 13, 6, 0, 13, 7, 0, 13, 8, 0, 13, 9, 0, 13, 10, 0, 13, 11, 0, 13, 12, 0, 13, 13, 0, 13, 14, 0, 13, 15, 0, 13, 16, 0, 13, 17, 0, 13, 18, 0, 13, 19, 0, 13, 20, 0, 13, 21, 0, 13, 22, 0, 13, 23, 0, 13, 24, 0, 13, 25, 0, 13, 26, 0, 13, 27, 0, 13, 28, 0, 13, 29, 0, 13, 30, 0, 13, 31, 0, 13, 32, 0, 13, 33, 0, 13, 34, 0, 13, 35, 0, 14, 65504, 0, 14, 65505, 0, 14, 65506, 0, 14, 65507, 0, 14, 65508, 0, 14, 65509, 0, 14, 65510, 0, 14, 65511, 0, 14, 65512, 0, 14, 65513, 0, 14, 65514, 0, 14, 65515, 0, 14, 65516, 0, 14, 65517, 0, 14, 65518, 0, 14, 65519, 0, 14, 65520, 0, 14, 65521, 0, 14, 65522, 0, 14, 65523, 0, 14, 65524, 0, 14, 65525, 0, 14, 65526, 0, 14, 65527, 0, 14, 65528, 0, 14, 65529, 0, 14, 65530, 0, 14, 65531, 0, 14, 65532, 0, 14, 65533, 0, 14, 65534, 0, 14, 65535, 0, 14, 0, 0, 14, 1, 0, 14, 2, 0, 14, 3, 0, 14, 4, 0, 14, 5, 0, 14, 6, 0, 14, 7, 0, 14, 8, 0, 14, 9, 0, 14, 10, 0, 14, 11, 0, 14, 12, 0, 14, 13, 0, 14, 14, 0, 14, 15, 0, 14, 16, 0, 14, 17, 0, 14, 18, 0, 14, 19, 0, 14, 20, 0, 14, 21, 0, 14, 22, 0, 14, 23, 0, 14, 24, 0, 14, 25, 0, 14, 26, 0, 14, 27, 0, 14, 28, 0, 14, 29, 0, 14, 30, 0, 14, 31, 0, 14, 32, 0, 14, 33, 0, 14, 34, 0, 14, 35, 0, 15, 65504, 0, 15, 65505, 0, 15, 65506, 0, 15, 65507, 0, 15, 65508, 0, 15, 65509, 0, 15, 65510, 0, 15, 65511, 0, 15, 65512, 0, 15, 65513, 0, 15, 65514, 0, 15, 65515, 0, 15, 65516, 0, 15, 65517, 0, 15, 65518, 0, 15, 65519, 0, 15, 65520, 0, 15, 65521, 0, 15, 65522, 0, 15, 65523, 0, 15, 65524, 0, 15, 65525, 0, 15, 65526, 0, 15, 65527, 0, 15, 65528, 0, 15, 65529, 0, 15, 65530, 0, 15, 65531, 0, 15, 65532, 0, 15, 65533, 0, 15, 65534, 0, 15, 65535, 0, 15, 0, 0, 15, 1, 0, 15, 2, 0, 15, 3, 0, 15, 4, 0, 15, 5, 0, 15, 6, 0, 15, 7, 0, 15, 8, 0, 15, 9, 0, 15, 10, 0, 15, 11, 0, 15, 12, 0, 15, 13, 0, 15, 14, 0, 15, 15, 0, 15, 16, 0, 15, 17, 0, 15, 18, 0, 15, 19, 0, 15, 20, 0, 15, 21, 0, 15, 22, 0, 15, 23, 0, 15, 24, 0, 15, 25, 0, 15, 26, 0, 15, 27, 0, 15, 28, 0, 15, 29, 0, 15, 30, 0, 15, 31, 0, 15, 32, 0, 15, 33, 0, 15, 34, 0, 15, 35, 0, 16, 65504, 0, 16, 65505, 0, 16, 65506, 0, 16, 65507, 0, 16, 65508, 0, 16, 65509, 0, 16, 65510, 0, 16, 65511, 0, 16, 65512, 0, 16, 65513, 0, 16, 65514, 0, 16, 65515, 0, 16, 65516, 0, 16, 65517, 0, 16, 65518, 0, 16, 65519, 0, 16, 65520, 0, 16, 65521, 0, 16, 65522, 0, 16, 65523, 0, 16, 65524, 0, 16, 65525, 0, 16, 65526, 0, 16, 65527, 0, 16, 65528, 0, 16, 65529, 0, 16, 65530, 0, 16, 65531, 0, 16, 65532, 0, 16, 65533, 0, 16, 65534, 0, 16, 65535, 0, 16, 0, 0, 16, 1, 0, 16, 2, 0, 16, 3, 0, 16, 4, 0, 16, 5, 0, 16, 6, 0, 16, 7, 0, 16, 8, 0, 16, 9, 0, 16, 10, 0, 16, 11, 0, 16, 12, 0, 16, 13, 0, 16, 14, 0, 16, 15, 0, 16, 16, 0, 16, 17, 0, 16, 18, 0, 16, 19, 0, 16, 20, 0, 16, 21, 0, 16, 22, 0, 16, 23, 0, 16, 24, 0, 16, 25, 0, 16, 26, 0, 16, 27, 0, 16, 28, 0, 16, 29, 0, 16, 30, 0, 16, 31, 0, 16, 32, 0, 16, 33, 0, 16, 34, 0, 16, 35, 0, 17, 65504, 0, 17, 65505, 0, 17, 65506, 0, 17, 65507, 0, 17, 65508, 0, 17, 65509, 0, 17, 65510, 0, 17, 65511, 0, 17, 65512, 0, 17, 65513, 0, 17, 65514, 0, 17, 65515, 0, 17, 65516, 0, 17, 65517, 0, 17, 65518, 0, 17, 65519, 0, 17, 65520, 0, 17, 65521, 0, 17, 65522, 0, 17, 65523, 0, 17, 65524, 0, 17, 65525, 0, 17, 65526, 0, 17, 65527, 0, 17, 65528, 0, 17, 65529, 0, 17, 65530, 0, 17, 65531, 0, 17, 65532, 0, 17, 65533, 0, 17, 65534, 0, 17, 65535, 0, 17, 0, 0, 17, 1, 0, 17, 2, 0, 17, 3, 0, 17, 4, 0, 17, 5, 0, 17, 6, 0, 17, 7, 0, 17, 8, 0, 17, 9, 0, 17, 10, 0, 17, 11, 0, 17, 12, 0, 17, 13, 0, 17, 14, 0, 17, 15, 0, 17, 16, 0, 17, 17, 0, 17, 18, 0, 17, 19, 0, 17, 20, 0, 17, 21, 0, 17, 22, 0, 17, 23, 0, 17, 24, 0, 17, 25, 0, 17, 26, 0, 17, 27, 0, 17, 28, 0, 17, 29, 0, 17, 30, 0, 17, 31, 0, 17, 32, 0, 17, 33, 0, 17, 34, 0, 17, 35, 0, 18, 65504, 0, 18, 65505, 0, 18, 65506, 0, 18, 65507, 0, 18, 65508, 0, 18, 65509, 0, 18, 65510, 0, 18, 65511, 0, 18, 65512, 0, 18, 65513, 0, 18, 65514, 0, 18, 65515, 0, 18, 65516, 0, 18, 65517, 0, 18, 65518, 0, 18, 65519, 0, 18, 65520, 0, 18, 65521, 0, 18, 65522, 0, 18, 65523, 0, 18, 65524, 0, 18, 65525, 0, 18, 65526, 0, 18, 65527, 0, 18, 65528, 0, 18, 65529, 0, 18, 65530, 0, 18, 65531, 0, 18, 65532, 0, 18, 65533, 0, 18, 65534, 0, 18, 65535, 0, 18, 0, 0, 18, 1, 0, 18, 2, 0, 18, 3, 0, 18, 4, 0, 18, 5, 0, 18, 6, 0, 18, 7, 0, 18, 8, 0, 18, 9, 0, 18, 10, 0, 18, 11, 0, 18, 12, 0, 18, 13, 0, 18, 14, 0, 18, 15, 0, 18, 16, 0, 18, 17, 0, 18, 18, 0, 18, 19, 0, 18, 20, 0, 18, 21, 0, 18, 22, 0, 18, 23, 0, 18, 24, 0, 18, 25, 0, 18, 26, 0, 18, 27, 0, 18, 28, 0, 18, 29, 0, 18, 30, 0, 18, 31, 0, 18, 32, 0, 18, 33, 0, 18, 34, 0, 18, 35, 0, 19, 65504, 0, 19, 65505, 0, 19, 65506, 0, 19, 65507, 0, 19, 65508, 0, 19, 65509, 0, 19, 65510, 0, 19, 65511, 0, 19, 65512, 0, 19, 65513, 0, 19, 65514, 0, 19, 65515, 0, 19, 65516, 0, 19, 65517, 0, 19, 65518, 0, 19, 65519, 0, 19, 65520, 0, 19, 65521, 0, 19, 65522, 0, 19, 65523, 0, 19, 65524, 0, 19, 65525, 0, 19, 65526, 0, 19, 65527, 0, 19, 65528, 0, 19, 65529, 0, 19, 65530, 0, 19, 65531, 0, 19, 65532, 0, 19, 65533, 0, 19, 65534, 0, 19, 65535, 0, 19, 0, 0, 19, 1, 0, 19, 2, 0, 19, 3, 0, 19, 4, 0, 19, 5, 0, 19, 6, 0, 19, 7, 0, 19, 8, 0, 19, 9, 0, 19, 10, 0, 19, 11, 0, 19, 12, 0, 19, 13, 0, 19, 14, 0, 19, 15, 0, 19, 16, 0, 19, 17, 0, 19, 18, 0, 19, 19, 0, 19, 20, 0, 19, 21, 0, 19, 22, 0, 19, 23, 0, 19, 24, 0, 19, 25, 0, 19, 26, 0, 19, 27, 0, 19, 28, 0, 19, 29, 0, 19, 30, 0, 19, 31, 0, 19, 32, 0, 19, 33, 0, 19, 34, 0, 19, 35, 0, 20, 65504, 0, 20, 65505, 0, 20, 65506, 0, 20, 65507, 0, 20, 65508, 0, 20, 65509, 0, 20, 65510, 0, 20, 65511, 0, 20, 65512, 0, 20, 65513, 0, 20, 65514, 0, 20, 65515, 0, 20, 65516, 0, 20, 65517, 0, 20, 65518, 0, 20, 65519, 0, 20, 65520, 0, 20, 65521, 0, 20, 65522, 0, 20, 65523, 0, 20, 65524, 0, 20, 65525, 0, 20, 65526, 0, 20, 65527, 0, 20, 65528, 0, 20, 65529, 0, 20, 65530, 0, 20, 65531, 0, 20, 65532, 0, 20, 65533, 0, 20, 65534, 0, 20, 65535, 0, 20, 0, 0, 20, 1, 0, 20, 2, 0, 20, 3, 0, 20, 4, 0, 20, 5, 0, 20, 6, 0, 20, 7, 0, 20, 8, 0, 20, 9, 0, 20, 10, 0, 20, 11, 0, 20, 12, 0, 20, 13, 0, 20, 14, 0, 20, 15, 0, 20, 16, 0, 20, 17, 0, 20, 18, 0, 20, 19, 0, 20, 20, 0, 20, 21, 0, 20, 22, 0, 20, 23, 0, 20, 24, 0, 20, 25, 0, 20, 26, 0, 20, 27, 0, 20, 28, 0, 20, 29, 0, 20, 30, 0, 20, 31, 0, 20, 32, 0, 20, 33, 0, 20, 34, 0, 20, 35, 0, 21, 65504, 0, 21, 65505, 0, 21, 65506, 0, 21, 65507, 0, 21, 65508, 0, 21, 65509, 0, 21, 65510, 0, 21, 65511, 0, 21, 65512, 0, 21, 65513, 0, 21, 65514, 0, 21, 65515, 0, 21, 65516, 0, 21, 65517, 0, 21, 65518, 0, 21, 65519, 0, 21, 65520, 0, 21, 65521, 0, 21, 65522, 0, 21, 65523, 0, 21, 65524, 0, 21, 65525, 0, 21, 65526, 0, 21, 65527, 0, 21, 65528, 0, 21, 65529, 0, 21, 65530, 0, 21, 65531, 0, 21, 65532, 0, 21, 65533, 0, 21, 65534, 0, 21, 65535, 0, 21, 0, 0, 21, 1, 0, 21, 2, 0, 21, 3, 0, 21, 4, 0, 21, 5, 0, 21, 6, 0, 21, 7, 0, 21, 8, 0, 21, 9, 0, 21, 10, 0, 21, 11, 0, 21, 12, 0, 21, 13, 0, 21, 14, 0, 21, 15, 0, 21, 16, 0, 21, 17, 0, 21, 18, 0, 21, 19, 0, 21, 20, 0, 21, 21, 0, 21, 22, 0, 21, 23, 0, 21, 24, 0, 21, 25, 0, 21, 26, 0, 21, 27, 0, 21, 28, 0, 21, 29, 0, 21, 30, 0, 21, 31, 0, 21, 32, 0, 21, 33, 0, 21, 34, 0, 21, 35, 0, 22, 65504, 0, 22, 65505, 0, 22, 65506, 0, 22, 65507, 0, 22, 65508, 0, 22, 65509, 0, 22, 65510, 0, 22, 65511, 0, 22, 65512, 0, 22, 65513, 0, 22, 65514, 0, 22, 65515, 0, 22, 65516, 0, 22, 65517, 0, 22, 65518, 0, 22, 65519, 0, 22, 65520, 0, 22, 65521, 0, 22, 65522, 0, 22, 65523, 0, 22, 65524, 0, 22, 65525, 0, 22, 65526, 0, 22, 65527, 0, 22, 65528, 0, 22, 65529, 0, 22, 65530, 0, 22, 65531, 0, 22, 65532, 0, 22, 65533, 0, 22, 65534, 0, 22, 65535, 0, 22, 0, 0, 22, 1, 0, 22, 2, 0, 22, 3, 0, 22, 4, 0, 22, 5, 0, 22, 6, 0, 22, 7, 0, 22, 8, 0, 22, 9, 0, 22, 10, 0, 22, 11, 0, 22, 12, 0, 22, 13, 0, 22, 14, 0, 22, 15, 0, 22, 16, 0, 22, 17, 0, 22, 18, 0, 22, 19, 0, 22, 20, 0, 22, 21, 0, 22, 22, 0, 22, 23, 0, 22, 24, 0, 22, 25, 0, 22, 26, 0, 22, 27, 0, 22, 28, 0, 22, 29, 0, 22, 30, 0, 22, 31, 0, 22, 32, 0, 22, 33, 0, 22, 34, 0, 22, 35, 0, 23, 65504, 0, 23, 65505, 0, 23, 65506, 0, 23, 65507, 0, 23, 65508, 0, 23, 65509, 0, 23, 65510, 0, 23, 65511, 0, 23, 65512, 0, 23, 65513, 0, 23, 65514, 0, 23, 65515, 0, 23, 65516, 0, 23, 65517, 0, 23, 65518, 0, 23, 65519, 0, 23, 65520, 0, 23, 65521, 0, 23, 65522, 0, 23, 65523, 0, 23, 65524, 0, 23, 65525, 0, 23, 65526, 0, 23, 65527, 0, 23, 65528, 0, 23, 65529, 0, 23, 65530, 0, 23, 65531, 0, 23, 65532, 0, 23, 65533, 0, 23, 65534, 0, 23, 65535, 0, 23, 0, 0, 23, 1, 0, 23, 2, 0, 23, 3, 0, 23, 4, 0, 23, 5, 0, 23, 6, 0, 23, 7, 0, 23, 8, 0, 23, 9, 0, 23, 10, 0, 23, 11, 0, 23, 12, 0, 23, 13, 0, 23, 14, 0, 23, 15, 0, 23, 16, 0, 23, 17, 0, 23, 18, 0, 23, 19, 0, 23, 20, 0, 23, 21, 0, 23, 22, 0, 23, 23, 0, 23, 24, 0, 23, 25, 0, 23, 26, 0, 23, 27, 0, 23, 28, 0, 23, 29, 0, 23, 30, 0, 23, 31, 0, 23, 32, 0, 23, 33, 0, 23, 34, 0, 23, 35, 0, 24, 65504, 0, 24, 65505, 0, 24, 65506, 0, 24, 65507, 0, 24, 65508, 0, 24, 65509, 0, 24, 65510, 0, 24, 65511, 0, 24, 65512, 0, 24, 65513, 0, 24, 65514, 0, 24, 65515, 0, 24, 65516, 0, 24, 65517, 0, 24, 65518, 0, 24, 65519, 0, 24, 65520, 0, 24, 65521, 0, 24, 65522, 0, 24, 65523, 0, 24, 65524, 0, 24, 65525, 0, 24, 65526, 0, 24, 65527, 0, 24, 65528, 0, 24, 65529, 0, 24, 65530, 0, 24, 65531, 0, 24, 65532, 0, 24, 65533, 0, 24, 65534, 0, 24, 65535, 0, 24, 0, 0, 24, 1, 0, 24, 2, 0, 24, 3, 0, 24, 4, 0, 24, 5, 0, 24, 6, 0, 24, 7, 0, 24, 8, 0, 24, 9, 0, 24, 10, 0, 24, 11, 0, 24, 12, 0, 24, 13, 0, 24, 14, 0, 24, 15, 0, 24, 16, 0, 24, 17, 0, 24, 18, 0, 24, 19, 0, 24, 20, 0, 24, 21, 0, 24, 22, 0, 24, 23, 0, 24, 24, 0, 24, 25, 0, 24, 26, 0, 24, 27, 0, 24, 28, 0, 24, 29, 0, 24, 30, 0, 24, 31, 0, 24, 32, 0, 24, 33, 0, 24, 34, 0, 24, 35, 0, 25, 65504, 0, 25, 65505, 0, 25, 65506, 0, 25, 65507, 0, 25, 65508, 0, 25, 65509, 0, 25, 65510, 0, 25, 65511, 0, 25, 65512, 0, 25, 65513, 0, 25, 65514, 0, 25, 65515, 0, 25, 65516, 0, 25, 65517, 0, 25, 65518, 0, 25, 65519, 0, 25, 65520, 0, 25, 65521, 0, 25, 65522, 0, 25, 65523, 0, 25, 65524, 0, 25, 65525, 0, 25, 65526, 0, 25, 65527, 0, 25, 65528, 0, 25, 65529, 0, 25, 65530, 0, 25, 65531, 0, 25, 65532, 0, 25, 65533, 0, 25, 65534, 0, 25, 65535, 0, 25, 0, 0, 25, 1, 0, 25, 2, 0, 25, 3, 0, 25, 4, 0, 25, 5, 0, 25, 6, 0, 25, 7, 0, 25, 8, 0, 25, 9, 0, 25, 10, 0, 25, 11, 0, 25, 12, 0, 25, 13, 0, 25, 14, 0, 25, 15, 0, 25, 16, 0, 25, 17, 0, 25, 18, 0, 25, 19, 0, 25, 20, 0, 25, 21, 0, 25, 22, 0, 25, 23, 0, 25, 24, 0, 25, 25, 0, 25, 26, 0, 25, 27, 0, 25, 28, 0, 25, 29, 0, 25, 30, 0, 25, 31, 0, 25, 32, 0, 25, 33, 0, 25, 34, 0, 25, 35, 0, 26, 65504, 0, 26, 65505, 0, 26, 65506, 0, 26, 65507, 0, 26, 65508, 0, 26, 65509, 0, 26, 65510, 0, 26, 65511, 0, 26, 65512, 0, 26, 65513, 0, 26, 65514, 0, 26, 65515, 0, 26, 65516, 0, 26, 65517, 0, 26, 65518, 0, 26, 65519, 0, 26, 65520, 0, 26, 65521, 0, 26, 65522, 0, 26, 65523, 0, 26, 65524, 0, 26, 65525, 0, 26, 65526, 0, 26, 65527, 0, 26, 65528, 0, 26, 65529, 0, 26, 65530, 0, 26, 65531, 0, 26, 65532, 0, 26, 65533, 0, 26, 65534, 0, 26, 65535, 0, 26, 0, 0, 26, 1, 0, 26, 2, 0, 26, 3, 0, 26, 4, 0, 26, 5, 0, 26, 6, 0, 26, 7, 0, 26, 8, 0, 26, 9, 0, 26, 10, 0, 26, 11, 0, 26, 12, 0, 26, 13, 0, 26, 14, 0, 26, 15, 0, 26, 16, 0, 26, 17, 0, 26, 18, 0, 26, 19, 0, 26, 20, 0, 26, 21, 0, 26, 22, 0, 26, 23, 0, 26, 24, 0, 26, 25, 0, 26, 26, 0, 26, 27, 0, 26, 28, 0, 26, 29, 0, 26, 30, 0, 26, 31, 0, 26, 32, 0, 26, 33, 0, 26, 34, 0, 26, 35, 0, 27, 65504, 0, 27, 65505, 0, 27, 65506, 0, 27, 65507, 0, 27, 65508, 0, 27, 65509, 0, 27, 65510, 0, 27, 65511, 0, 27, 65512, 0, 27, 65513, 0, 27, 65514, 0, 27, 65515, 0, 27, 65516, 0, 27, 65517, 0, 27, 65518, 0, 27, 65519, 0, 27, 65520, 0, 27, 65521, 0, 27, 65522, 0, 27, 65523, 0, 27, 65524, 0, 27, 65525, 0, 27, 65526, 0, 27, 65527, 0, 27, 65528, 0, 27, 65529, 0, 27, 65530, 0, 27, 65531, 0, 27, 65532, 0, 27, 65533, 0, 27, 65534, 0, 27, 65535, 0, 27, 0, 0, 27, 1, 0, 27, 2, 0, 27, 3, 0, 27, 4, 0, 27, 5, 0, 27, 6, 0, 27, 7, 0, 27, 8, 0, 27, 9, 0, 27, 10, 0, 27, 11, 0, 27, 12, 0, 27, 13, 0, 27, 14, 0, 27, 15, 0, 27, 16, 0, 27, 17, 0, 27, 18, 0, 27, 19, 0, 27, 20, 0, 27, 21, 0, 27, 22, 0, 27, 23, 0, 27, 24, 0, 27, 25, 0, 27, 26, 0, 27, 27, 0, 27, 28, 0, 27, 29, 0, 27, 30, 0, 27, 31, 0, 27, 32, 0, 27, 33, 0, 27, 34, 0, 27, 35, 0, 28, 65504, 0, 28, 65505, 0, 28, 65506, 0, 28, 65507, 0, 28, 65508, 0, 28, 65509, 0, 28, 65510, 0, 28, 65511, 0, 28, 65512, 0, 28, 65513, 0, 28, 65514, 0, 28, 65515, 0, 28, 65516, 0, 28, 65517, 0, 28, 65518, 0, 28, 65519, 0, 28, 65520, 0, 28, 65521, 0, 28, 65522, 0, 28, 65523, 0, 28, 65524, 0, 28, 65525, 0, 28, 65526, 0, 28, 65527, 0, 28, 65528, 0, 28, 65529, 0, 28, 65530, 0, 28, 65531, 0, 28, 65532, 0, 28, 65533, 0, 28, 65534, 0, 28, 65535, 0, 28, 0, 0, 28, 1, 0, 28, 2, 0, 28, 3, 0, 28, 4, 0, 28, 5, 0, 28, 6, 0, 28, 7, 0, 28, 8, 0, 28, 9, 0, 28, 10, 0, 28, 11, 0, 28, 12, 0, 28, 13, 0, 28, 14, 0, 28, 15, 0, 28, 16, 0, 28, 17, 0, 28, 18, 0, 28, 19, 0, 28, 20, 0, 28, 21, 0, 28, 22, 0, 28, 23, 0, 28, 24, 0, 28, 25, 0, 28, 26, 0, 28, 27, 0, 28, 28, 0, 28, 29, 0, 28, 30, 0, 28, 31, 0, 28, 32, 0, 28, 33, 0, 28, 34, 0, 28, 35, 0, 29, 65504, 0, 29, 65505, 0, 29, 65506, 0, 29, 65507, 0, 29, 65508, 0, 29, 65509, 0, 29, 65510, 0, 29, 65511, 0, 29, 65512, 0, 29, 65513, 0, 29, 65514, 0, 29, 65515, 0, 29, 65516, 0, 29, 65517, 0, 29, 65518, 0, 29, 65519, 0, 29, 65520, 0, 29, 65521, 0, 29, 65522, 0, 29, 65523, 0, 29, 65524, 0, 29, 65525, 0, 29, 65526, 0, 29, 65527, 0, 29, 65528, 0, 29, 65529, 0, 29, 65530, 0, 29, 65531, 0, 29, 65532, 0, 29, 65533, 0, 29, 65534, 0, 29, 65535, 0, 29, 0, 0, 29, 1, 0, 29, 2, 0, 29, 3, 0, 29, 4, 0, 29, 5, 0, 29, 6, 0, 29, 7, 0, 29, 8, 0, 29, 9, 0, 29, 10, 0, 29, 11, 0, 29, 12, 0, 29, 13, 0, 29, 14, 0, 29, 15, 0, 29, 16, 0, 29, 17, 0, 29, 18, 0, 29, 19, 0, 29, 20, 0, 29, 21, 0, 29, 22, 0, 29, 23, 0, 29, 24, 0, 29, 25, 0, 29, 26, 0, 29, 27, 0, 29, 28, 0, 29, 29, 0, 29, 30, 0, 29, 31, 0, 29, 32, 0, 29, 33, 0, 29, 34, 0, 29, 35, 0, 30, 65504, 0, 30, 65505, 0, 30, 65506, 0, 30, 65507, 0, 30, 65508, 0, 30, 65509, 0, 30, 65510, 0, 30, 65511, 0, 30, 65512, 0, 30, 65513, 0, 30, 65514, 0, 30, 65515, 0, 30, 65516, 0, 30, 65517, 0, 30, 65518, 0, 30, 65519, 0, 30, 65520, 0, 30, 65521, 0, 30, 65522, 0, 30, 65523, 0, 30, 65524, 0, 30, 65525, 0, 30, 65526, 0, 30, 65527, 0, 30, 65528, 0, 30, 65529, 0, 30, 65530, 0, 30, 65531, 0, 30, 65532, 0, 30, 65533, 0, 30, 65534, 0, 30, 65535, 0, 30, 0, 0, 30, 1, 0, 30, 2, 0, 30, 3, 0, 30, 4, 0, 30, 5, 0, 30, 6, 0, 30, 7, 0, 30, 8, 0, 30, 9, 0, 30, 10, 0, 30, 11, 0, 30, 12, 0, 30, 13, 0, 30, 14, 0, 30, 15, 0, 30, 16, 0, 30, 17, 0, 30, 18, 0, 30, 19, 0, 30, 20, 0, 30, 21, 0, 30, 22, 0, 30, 23, 0, 30, 24, 0, 30, 25, 0, 30, 26, 0, 30, 27, 0, 30, 28, 0, 30, 29, 0, 30, 30, 0, 30, 31, 0, 30, 32, 0, 30, 33, 0, 30, 34, 0, 30, 35, 0, 31, 65504, 0, 31, 65505, 0, 31, 65506, 0, 31, 65507, 0, 31, 65508, 0, 31, 65509, 0, 31, 65510, 0, 31, 65511, 0, 31, 65512, 0, 31, 65513, 0, 31, 65514, 0, 31, 65515, 0, 31, 65516, 0, 31, 65517, 0, 31, 65518, 0, 31, 65519, 0, 31, 65520, 0, 31, 65521, 0, 31, 65522, 0, 31, 65523, 0, 31, 65524, 0, 31, 65525, 0, 31, 65526, 0, 31, 65527, 0, 31, 65528, 0, 31, 65529, 0, 31, 65530, 0, 31, 65531, 0, 31, 65532, 0, 31, 65533, 0, 31, 65534, 0, 31, 65535, 0, 31, 0, 0, 31, 1, 0, 31, 2, 0, 31, 3, 0, 31, 4, 0, 31, 5, 0, 31, 6, 0, 31, 7, 0, 31, 8, 0, 31, 9, 0, 31, 10, 0, 31, 11, 0, 31, 12, 0, 31, 13, 0, 31, 14, 0, 31, 15, 0, 31, 16, 0, 31, 17, 0, 31, 18, 0, 31, 19, 0, 31, 20, 0, 31, 21, 0, 31, 22, 0, 31, 23, 0, 31, 24, 0, 31, 25, 0, 31, 26, 0, 31, 27, 0, 31, 28, 0, 31, 29, 0, 31, 30, 0, 31, 31, 0, 31, 32, 0, 31, 33, 0, 31, 34, 0, 31, 35, 0, 32, 65504, 0, 32, 65505, 0, 32, 65506, 0, 32, 65507, 0, 32, 65508, 0, 32, 65509, 0, 32, 65510, 0, 32, 65511, 0, 32, 65512, 0, 32, 65513, 0, 32, 65514, 0, 32, 65515, 0, 32, 65516, 0, 32, 65517, 0, 32, 65518, 0, 32, 65519, 0, 32, 65520, 0, 32, 65521, 0, 32, 65522, 0, 32, 65523, 0, 32, 65524, 0, 32, 65525, 0, 32, 65526, 0, 32, 65527, 0, 32, 65528, 0, 32, 65529, 0, 32, 65530, 0, 32, 65531, 0, 32, 65532, 0, 32, 65533, 0, 32, 65534, 0, 32, 65535, 0, 32, 0, 0, 32, 1, 0, 32, 2, 0, 32, 3, 0, 32, 4, 0, 32, 5, 0, 32, 6, 0, 32, 7, 0, 32, 8, 0, 32, 9, 0, 32, 10, 0, 32, 11, 0, 32, 12, 0, 32, 13, 0, 32, 14, 0, 32, 15, 0, 32, 16, 0, 32, 17, 0, 32, 18, 0, 32, 19, 0, 32, 20, 0, 32, 21, 0, 32, 22, 0, 32, 23, 0, 32, 24, 0, 32, 25, 0, 32, 26, 0, 32, 27, 0, 32, 28, 0, 32, 29, 0, 32, 30, 0, 32, 31, 0, 32, 32, 0, 32, 33, 0, 32, 34, 0, 32, 35, 0, 33, 65504, 0, 33, 65505, 0, 33, 65506, 0, 33, 65507, 0, 33, 65508, 0, 33, 65509, 0, 33, 65510, 0, 33, 65511, 0, 33, 65512, 0, 33, 65513, 0, 33, 65514, 0, 33, 65515, 0, 33, 65516, 0, 33, 65517, 0, 33, 65518, 0, 33, 65519, 0, 33, 65520, 0, 33, 65521, 0, 33, 65522, 0, 33, 65523, 0, 33, 65524, 0, 33, 65525, 0, 33, 65526, 0, 33, 65527, 0, 33, 65528, 0, 33, 65529, 0, 33, 65530, 0, 33, 65531, 0, 33, 65532, 0, 33, 65533, 0, 33, 65534, 0, 33, 65535, 0, 33, 0, 0, 33, 1, 0, 33, 2, 0, 33, 3, 0, 33, 4, 0, 33, 5, 0, 33, 6, 0, 33, 7, 0, 33, 8, 0, 33, 9, 0, 33, 10, 0, 33, 11, 0, 33, 12, 0, 33, 13, 0, 33, 14, 0, 33, 15, 0, 33, 16, 0, 33, 17, 0, 33, 18, 0, 33, 19, 0, 33, 20, 0, 33, 21, 0, 33, 22, 0, 33, 23, 0, 33, 24, 0, 33, 25, 0, 33, 26, 0, 33, 27, 0, 33, 28, 0, 33, 29, 0, 33, 30, 0, 33, 31, 0, 33, 32, 0, 33, 33, 0, 33, 34, 0, 33, 35, 0, 34, 65504, 0, 34, 65505, 0, 34, 65506, 0, 34, 65507, 0, 34, 65508, 0, 34, 65509, 0, 34, 65510, 0, 34, 65511, 0, 34, 65512, 0, 34, 65513, 0, 34, 65514, 0, 34, 65515, 0, 34, 65516, 0, 34, 65517, 0, 34, 65518, 0, 34, 65519, 0, 34, 65520, 0, 34, 65521, 0, 34, 65522, 0, 34, 65523, 0, 34, 65524, 0, 34, 65525, 0, 34, 65526, 0, 34, 65527, 0, 34, 65528, 0, 34, 65529, 0, 34, 65530, 0, 34, 65531, 0, 34, 65532, 0, 34, 65533, 0, 34, 65534, 0, 34, 65535, 0, 34, 0, 0, 34, 1, 0, 34, 2, 0, 34, 3, 0, 34, 4, 0, 34, 5, 0, 34, 6, 0, 34, 7, 0, 34, 8, 0, 34, 9, 0, 34, 10, 0, 34, 11, 0, 34, 12, 0, 34, 13, 0, 34, 14, 0, 34, 15, 0, 34, 16, 0, 34, 17, 0, 34, 18, 0, 34, 19, 0, 34, 20, 0, 34, 21, 0, 34, 22, 0, 34, 23, 0, 34, 24, 0, 34, 25, 0, 34, 26, 0, 34, 27, 0, 34, 28, 0, 34, 29, 0, 34, 30, 0, 34, 31, 0, 34, 32, 0, 34, 33, 0, 34, 34, 0, 34, 35, 0, 35, 65504, 0, 35, 65505, 0, 35, 65506, 0, 35, 65507, 0, 35, 65508, 0, 35, 65509, 0, 35, 65510, 0, 35, 65511, 0, 35, 65512, 0, 35, 65513, 0, 35, 65514, 0, 35, 65515, 0, 35, 65516, 0, 35, 65517, 0, 35, 65518, 0, 35, 65519, 0, 35, 65520, 0, 35, 65521, 0, 35, 65522, 0, 35, 65523, 0, 35, 65524, 0, 35, 65525, 0, 35, 65526, 0, 35, 65527, 0, 35, 65528, 0, 35, 65529, 0, 35, 65530, 0, 35, 65531, 0, 35, 65532, 0, 35, 65533, 0, 35, 65534, 0, 35, 65535, 0, 35, 0, 0, 35, 1, 0, 35, 2, 0, 35, 3, 0, 35, 4, 0, 35, 5, 0, 35, 6, 0, 35, 7, 0, 35, 8, 0, 35, 9, 0, 35, 10, 0, 35, 11, 0, 35, 12, 0, 35, 13, 0, 35, 14, 0, 35, 15, 0, 35, 16, 0, 35, 17, 0, 35, 18, 0, 35, 19, 0, 35, 20, 0, 35, 21, 0, 35, 22, 0, 35, 23, 0, 35, 24, 0, 35, 25, 0, 35, 26, 0, 35, 27, 0, 35, 28, 0, 35, 29, 0, 35, 30, 0, 35, 31, 0, 35, 32, 0, 35, 33, 0, 35, 34, 0, 35, 35, 0, 2, 65534, 0, 3, 65532, 0, 5, 65534, 0, 5, 65535, 0, 5, 0, 0, 5, 1, 0) +} +script = ExtResource("1_ws6nn") +enemy_pool = Array[Resource("res://Scripts/Resources/enemy.gd")]([ExtResource("3_l3ehn"), ExtResource("4_0gtw5"), ExtResource("5_hppyg"), ExtResource("6_oty0h"), ExtResource("7_07st7"), ExtResource("8_sf1ao")]) +player_spawns = [NodePath("PlayerSpawnLocations/PlayerSpawn1"), NodePath("PlayerSpawnLocations/PlayerSpawn2"), NodePath("PlayerSpawnLocations/PlayerSpawn3"), NodePath("PlayerSpawnLocations/PlayerSpawn4")] +enemy_spawns = [NodePath("GroundSpawn"), NodePath("AirSpawn")] +enemy_goals = [NodePath("EnemyGoal")] +a_star_graph_3d = NodePath("AStarGraph3D") +metadata/_editor_floor_ = Vector3(0, 0, 0) + +[node name="Sun" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.917074, 0.155176, 0.367281, -0.398717, 0.356914, 0.84477, 8.88179e-16, -0.921158, 0.389188, 0, 100, 0) + +[node name="CinematicCam" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.965103, 0.261869, 0, -0.261869, 0.965103, 0, 4.58117, 6.60758) +cull_mask = 1 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_l41d0") + +[node name="EnemyGoal" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 23, 0.5, 0) + +[node name="CSGBox3D" type="CSGBox3D" parent="EnemyGoal"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) + +[node name="VisualizedPath" type="Path3D" parent="."] +curve = SubResource("Curve3D_suxqu") +script = ExtResource("11_d7ofl") + +[node name="GroundSpawn" parent="." node_paths=PackedStringArray("path", "dest") instance=ExtResource("3_5imwp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 0.5, 0) +path = NodePath("../VisualizedPath") +type = 1 +dest = NodePath("../EnemyGoal") +air_enemy_scene = ExtResource("12_tqi5x") + +[node name="AirSpawn" parent="." node_paths=PackedStringArray("dest") instance=ExtResource("3_5imwp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -47.0801, 22.5492, 0) +type = 2 +dest = NodePath("../EnemyGoal") +air_enemy_scene = ExtResource("12_tqi5x") + +[node name="CardPrinter" parent="." instance=ExtResource("9_r25gu")] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 25.1496, 0.499996, 5.79039) + +[node name="Trees" type="Node3D" parent="."] + +[node name="Tree" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.9581, 0.5, -4.16029) + +[node name="Tree2" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.3403, 0.5, 3.00628) + +[node name="Tree3" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.0176, 0.5, 10.5107) + +[node name="Tree4" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.6608, 0.5, 8.54912) + +[node name="Tree5" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.8033, 0.5, 5.85091) + +[node name="Tree6" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.7746, 0.499998, 1.14891) + +[node name="Tree7" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27.2258, 0.499998, -2.92603) + +[node name="Tree8" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.1576, 0.499998, -2.93234) + +[node name="Tree9" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.4654, 0.499998, -1.21667) + +[node name="Tree10" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.1971, 0.499998, 1.76769) + +[node name="Tree11" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -34.0165, 0.499998, 4.2918) + +[node name="Tree12" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -36.1443, 0.499998, 6.60157) + +[node name="Tree13" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.4516, 0.5, 9.1856) + +[node name="Tree14" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -37.002, 0.5, 11.8086) + +[node name="Tree15" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.0605, 0.5, -9.98104) + +[node name="Tree16" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.1546, 0.499998, -16.4042) + +[node name="Tree17" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.3462, 0.499998, -21.2664) + +[node name="Tree18" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.34623, 0.499998, -22.2664) + +[node name="Tree19" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.36527, 0.5, -21.7372) + +[node name="Tree20" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.51903, 0.500002, -21.2514) + +[node name="Tree21" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.51903, 0.500002, -21.2514) + +[node name="Tree22" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.79995, 0.500006, -23.396) + +[node name="Tree23" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.0938, 0.500006, -23.5359) + +[node name="Tree24" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.7496, 0.500006, -23.5671) + +[node name="Tree25" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.9642, 0.500006, -21.0381) + +[node name="Tree26" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.9642, 0.500006, -17.0381) + +[node name="Tree27" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 27.5112, 0.500006, -11.2182) + +[node name="Tree28" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 29.8624, 0.500006, -6.18511) + +[node name="Tree29" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31.2855, 0.500006, -0.657061) + +[node name="Tree30" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.825, 0.500006, 4.91539) + +[node name="Tree31" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28.0303, 0.500006, 11.771) + +[node name="Tree32" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.0303, 0.500006, 17.771) + +[node name="Tree33" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.0073, 0.500006, 21.2305) + +[node name="Tree34" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.3299, 0.500006, 26.4282) + +[node name="Tree35" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.96343, 0.500006, 29.3049) + +[node name="Tree36" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.21287, 0.500006, 30.7198) + +[node name="Tree37" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.48288, 0.500006, 32.0162) + +[node name="Tree38" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.94951, 0.500006, 31.6698) + +[node name="Tree39" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.3671, 0.500002, 30.2392) + +[node name="Tree40" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.4585, 0.499998, 28.571) + +[node name="Tree41" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.4585, 0.499998, 25.571) + +[node name="Tree42" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -28.8191, 0.500002, 20.3102) + +[node name="Tree43" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.3912, 0.500002, 15.0072) + +[node name="Tree44" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 20) + +[node name="Tree45" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 18) + +[node name="Tree46" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 16) + +[node name="Tree47" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 21) + +[node name="Tree48" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.833413, 1.90735e-06, 16.4959) + +[node name="Tree49" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.43833, 0, 15.6604) + +[node name="Tree50" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.79685, 0, 19.1783) + +[node name="Tree51" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.07514, 0, 21.0477) + +[node name="Tree52" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.06338, 0, 13.4936) + +[node name="Tree53" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.64328, 0, 12.7039) + +[node name="Tree54" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.8463, 0, 11.6802) + +[node name="Tree55" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.8631, 0, 15.6216) + +[node name="Tree56" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.3153, 0, 13.4882) + +[node name="Tree57" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.9242, 0, 21.5176) + +[node name="Tree58" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.1782, 0, 12.0249) + +[node name="Tree59" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30.1783, 0, 8.53849) + +[node name="Tree60" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.3879, 0, 1.70052) + +[node name="Tree61" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.0971, 0, -2.90985) + +[node name="Tree62" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.10667, 1.90735e-06, 23.6948) + +[node name="Tree63" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.34759, 0, 25.3535) + +[node name="Tree64" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.08945, 0, 25.0002) + +[node name="Tree65" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.99801, 1.90735e-06, 17.4631) + +[node name="Tree66" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.1297, 0, 11.2177) + +[node name="Tree67" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.3564, 1.90735e-06, 16.4775) + +[node name="Tree68" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.55839, 1.90735e-06, 18.9551) + +[node name="Tree69" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1857, 1.90735e-06, 25.0545) + +[node name="Tree70" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.5608, 0, 23.1718) + +[node name="Tree71" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.3715, 0, 21.0323) + +[node name="Tree72" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -21.121, 1.90735e-06, 22.4372) + +[node name="Tree73" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.7273, 0, 15.004) + +[node name="Tree74" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.3204, 0, 17.9194) + +[node name="Tree75" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.7465, 0, 11.8229) + +[node name="Tree76" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.1312, -1.90735e-06, 13.1821) + +[node name="Tree77" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.577, 0, 17.4094) + +[node name="Tree78" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -25.0632, 0, 18.5666) + +[node name="Tree79" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.2817, 0, 12.5708) + +[node name="Tree80" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27.5906, 0, 17.0615) + +[node name="Tree81" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.0431, 0, 13.0007) + +[node name="Tree82" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.0381, 0, -5.96004) + +[node name="Tree83" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.3643, 0, -1.82155) + +[node name="Tree84" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.4774, 0, 2.90493) + +[node name="Tree85" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.2843, 0, 6.28406) + +[node name="Tree86" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -31.5584, 0, 10.5879) + +[node name="Tree87" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.459, 0, 20.2242) + +[node name="Tree88" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.95871, 0, -20.2879) + +[node name="Tree89" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.78131, 0, -13.0664) + +[node name="Tree90" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.54611, 0, -15.3617) + +[node name="Tree91" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.42729, 0, -12.4254) + +[node name="Tree92" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.669, 0, -15.7835) + +[node name="Tree93" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.04824, 0, -18.2501) + +[node name="Tree94" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.8105, 0, -18.7671) + +[node name="Tree95" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.52684, 0, -17.5411) + +[node name="Tree96" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.1092, 0, -10.764) + +[node name="Tree97" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15.243, 0, -13.5111) + +[node name="Tree98" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16.1907, 0, -16.3335) + +[node name="Tree99" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20.8111, 0, -13.5834) + +[node name="Tree100" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.5141, 0, -8.21202) + +[node name="Tree101" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -22.9397, 0, -8.70021) + +[node name="Tree102" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27.6153, 0, -13.0484) + +[node name="Tree103" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.627348, 0, -17.0534) + +[node name="Tree104" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.03485, 0, -14.2176) + +[node name="Tree105" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.82444, 0, -18.4438) + +[node name="Tree106" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.19373, 0, -20.2347) + +[node name="Tree107" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.3896, 0, -16.5323) + +[node name="Tree108" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8.352, 0, -14.523) + +[node name="Tree109" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15.2171, 0, -19.789) + +[node name="Tree110" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.4117, 0, -17.251) + +[node name="Tree111" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.0888, 0, -16.1715) + +[node name="Tree112" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 19.4365, 0, -19.5705) + +[node name="Tree113" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.0866, 0, -13.4566) + +[node name="Tree114" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 24.2342, 0, -11.617) + +[node name="Tree115" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.0725, 0, -9.5091) + +[node name="Tree116" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 26.43, 0, -5.85608) + +[node name="Tree117" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.6886, 0, -12.2153) + +[node name="Tree118" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.6013, 0, -14.5943) + +[node name="Tree119" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5365, 0, -7.52541) + +[node name="Tree120" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.3932, 0, -10.2968) + +[node name="Tree121" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.7408, 0, -10.5807) + +[node name="Tree122" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.7564, 0, 10.602) + +[node name="Tree123" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.193557, 0, -11.8531) + +[node name="Tree124" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.94883, 0, 11.8645) + +[node name="Tree125" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.3106, 0, 11.6716) + +[node name="Tree126" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.28633, 0, 10.0277) + +[node name="Tree127" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.43489, 0, 11.2421) + +[node name="Tree128" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.81471, 0, 8.71751) + +[node name="Tree129" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21.0541, 0, 9.42008) + +[node name="Tree130" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.7939, 0, 9.04683) + +[node name="Tree131" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.14442, 0, 9.73803) + +[node name="Tree132" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.7484, 0, 23.8066) + +[node name="Tree133" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18.4983, 0, -11.4034) + +[node name="Tree134" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.2138, 0, -6.79625) + +[node name="Tree135" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -32.7927, 0, -7.05431) + +[node name="Tree136" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29.9384, 0, -9.08715) + +[node name="Tree137" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -32.6106, 0, -13.041) + +[node name="Tree138" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.7699, 0, -14.4419) + +[node name="Tree139" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.6869, 0, -19.7922) + +[node name="Tree140" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -23.9105, 0, -21.0025) + +[node name="Tree141" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -27.9706, 0, -19.5254) + +[node name="Tree142" parent="Trees" instance=ExtResource("10_7v1co")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30.5192, 0, -17.6837) + +[node name="PlayerSpawnLocations" type="Node3D" parent="."] + +[node name="PlayerSpawn1" type="Node3D" parent="PlayerSpawnLocations"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, -1) + +[node name="PlayerSpawn2" type="Node3D" parent="PlayerSpawnLocations"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -1) + +[node name="PlayerSpawn3" type="Node3D" parent="PlayerSpawnLocations"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 1, 1) + +[node name="PlayerSpawn4" type="Node3D" parent="PlayerSpawnLocations"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1) + +[node name="AStarGraph3D" type="Node3D" parent="." node_paths=PackedStringArray("start", "end", "spawner", "visualized_path")] +script = ExtResource("11_07ukk") +grid_size = Vector2(19, 9) +point_gap = 1.5 +start = NodePath("../GroundSpawn") +end = NodePath("../EnemyGoal") +spawner = NodePath("../GroundSpawn") +visualized_path = NodePath("../VisualizedPath") + +[node name="InvisibleWalls" type="Node3D" parent="."] + +[node name="StaticBody3D" type="StaticBody3D" parent="InvisibleWalls"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 18.6848) +collision_layer = 32 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls/StaticBody3D"] +shape = SubResource("BoxShape3D_kkwvm") + +[node name="StaticBody3D2" type="StaticBody3D" parent="InvisibleWalls"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16.9482) +collision_layer = 32 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls/StaticBody3D2"] +shape = SubResource("BoxShape3D_kkwvm") + +[node name="StaticBody3D3" type="StaticBody3D" parent="InvisibleWalls"] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -27.2323, 0, 1.33472) +collision_layer = 32 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls/StaticBody3D3"] +shape = SubResource("BoxShape3D_kkwvm") + +[node name="StaticBody3D4" type="StaticBody3D" parent="InvisibleWalls"] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 29.0754, 0, -3.96028) +collision_layer = 32 +collision_mask = 0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="InvisibleWalls/StaticBody3D4"] +shape = SubResource("BoxShape3D_kkwvm") diff --git a/Worlds/GreenPlanet/tilemap.tres b/Worlds/GreenPlanet/tilemap.tres new file mode 100644 index 0000000..50ba5c3 --- /dev/null +++ b/Worlds/GreenPlanet/tilemap.tres @@ -0,0 +1,63 @@ +[gd_resource type="MeshLibrary" load_steps=13 format=3 uid="uid://jfr8j8kycfa5"] + +[ext_resource type="Texture2D" uid="uid://blnfsojw4ukq4" path="res://Assets/Textures/grass.png" id="1_ghpvv"] +[ext_resource type="Texture2D" uid="uid://r8cr41blojpm" path="res://Assets/Textures/stone wall 7.png" id="1_sntky"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ulcfh"] +albedo_texture = ExtResource("1_ghpvv") +texture_filter = 0 + +[sub_resource type="QuadMesh" id="QuadMesh_p0vo4"] +material = SubResource("StandardMaterial3D_ulcfh") +orientation = 1 + +[sub_resource type="Image" id="Image_eu4n8"] +data = { +"data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 61, 129, 57, 255, 74, 149, 70, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 74, 149, 70, 255, 74, 149, 70, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 60, 129, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 60, 129, 57, 255, 60, 129, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 129, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 60, 128, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 74, 149, 70, 255, 74, 149, 70, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 74, 148, 70, 255, 74, 148, 70, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 149, 70, 255, 74, 149, 70, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 74, 148, 70, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 74, 148, 70, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 74, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 74, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 60, 128, 56, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 60, 128, 56, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 60, 128, 56, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 127, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 127, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 60, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 56, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 127, 56, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 55, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 55, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 68, 255, 73, 147, 68, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 68, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 55, 255, 59, 127, 55, 255, 73, 147, 68, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 146, 68, 255, 72, 146, 68, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +"format": "RGBA8", +"height": 64, +"mipmaps": false, +"width": 64 +} + +[sub_resource type="ImageTexture" id="ImageTexture_p1rdv"] +image = SubResource("Image_eu4n8") + +[sub_resource type="BoxShape3D" id="BoxShape3D_mtfk2"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jnpkd"] +albedo_texture = ExtResource("1_sntky") + +[sub_resource type="QuadMesh" id="QuadMesh_4ay7f"] +material = SubResource("StandardMaterial3D_jnpkd") +orientation = 1 + +[sub_resource type="Image" id="Image_ktpj2"] +data = { +"data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 100, 92, 255, 103, 106, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 104, 97, 255, 110, 113, 108, 255, 117, 120, 115, 255, 112, 115, 110, 255, 106, 109, 103, 255, 101, 105, 97, 255, 105, 107, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 112, 107, 255, 106, 109, 103, 255, 101, 105, 98, 255, 98, 103, 96, 255, 106, 109, 103, 255, 105, 109, 102, 255, 104, 107, 100, 255, 105, 105, 98, 255, 102, 102, 94, 255, 103, 103, 96, 255, 107, 107, 100, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 92, 255, 107, 106, 100, 255, 106, 106, 99, 255, 105, 107, 101, 255, 108, 110, 104, 255, 114, 116, 111, 255, 114, 117, 112, 255, 109, 111, 105, 255, 109, 109, 102, 255, 108, 107, 100, 255, 103, 104, 96, 255, 103, 103, 95, 255, 106, 105, 98, 255, 108, 108, 101, 255, 109, 109, 103, 255, 106, 108, 103, 255, 103, 105, 100, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 108, 101, 255, 104, 104, 98, 255, 93, 94, 88, 255, 91, 92, 86, 255, 94, 95, 89, 255, 99, 100, 94, 255, 108, 107, 101, 255, 101, 102, 94, 255, 94, 96, 87, 255, 94, 96, 87, 255, 96, 97, 88, 255, 102, 102, 94, 255, 104, 104, 97, 255, 107, 107, 100, 255, 108, 109, 103, 255, 110, 111, 107, 255, 110, 112, 108, 255, 107, 109, 104, 255, 94, 97, 91, 255, 83, 87, 78, 255, 84, 88, 79, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 93, 255, 99, 100, 94, 255, 92, 94, 88, 255, 92, 93, 87, 255, 93, 95, 88, 255, 96, 97, 91, 255, 95, 96, 90, 255, 88, 90, 82, 255, 80, 83, 75, 255, 74, 78, 69, 255, 77, 81, 72, 255, 83, 86, 77, 255, 86, 89, 80, 255, 88, 91, 81, 255, 92, 94, 85, 255, 100, 102, 95, 255, 105, 107, 102, 255, 108, 110, 105, 255, 104, 106, 101, 255, 95, 98, 92, 255, 86, 89, 81, 255, 83, 87, 78, 255, 81, 86, 76, 255, 89, 93, 83, 255, 98, 102, 92, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 97, 255, 101, 101, 97, 255, 103, 104, 99, 255, 98, 99, 94, 255, 93, 93, 87, 255, 90, 90, 84, 255, 81, 83, 78, 255, 84, 87, 80, 255, 85, 88, 79, 255, 83, 87, 77, 255, 78, 81, 73, 255, 72, 76, 68, 255, 66, 71, 63, 255, 69, 73, 66, 255, 68, 71, 66, 255, 67, 69, 66, 255, 74, 76, 72, 255, 83, 86, 80, 255, 93, 96, 90, 255, 95, 98, 91, 255, 97, 100, 94, 255, 102, 105, 97, 255, 100, 103, 93, 255, 103, 106, 96, 255, 106, 108, 99, 255, 109, 111, 102, 255, 105, 107, 98, 255, 98, 101, 91, 255, 101, 105, 94, 255, 113, 115, 107, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 94, 255, 101, 101, 97, 255, 99, 100, 95, 255, 99, 100, 96, 255, 102, 103, 99, 255, 92, 92, 86, 255, 88, 87, 81, 255, 91, 92, 86, 255, 91, 94, 87, 255, 84, 88, 81, 255, 73, 77, 70, 255, 70, 74, 66, 255, 71, 75, 67, 255, 71, 76, 69, 255, 72, 75, 71, 255, 72, 74, 71, 255, 73, 75, 73, 255, 69, 71, 69, 255, 66, 69, 66, 255, 72, 74, 72, 255, 77, 79, 75, 255, 89, 92, 85, 255, 98, 102, 93, 255, 102, 105, 95, 255, 109, 111, 101, 255, 114, 116, 106, 255, 111, 113, 104, 255, 105, 108, 98, 255, 110, 113, 104, 255, 124, 127, 122, 255, 125, 128, 123, 255, 127, 130, 125, 255, 123, 126, 120, 255, 118, 121, 113, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 107, 101, 255, 106, 104, 97, 255, 99, 99, 92, 255, 99, 100, 94, 255, 99, 100, 95, 255, 102, 102, 98, 255, 98, 99, 95, 255, 88, 88, 82, 255, 85, 84, 78, 255, 85, 84, 78, 255, 88, 89, 83, 255, 87, 87, 81, 255, 83, 83, 76, 255, 78, 80, 73, 255, 82, 84, 79, 255, 81, 83, 80, 255, 76, 78, 75, 255, 80, 83, 80, 255, 84, 86, 84, 255, 86, 88, 85, 255, 89, 92, 89, 255, 89, 92, 87, 255, 91, 95, 89, 255, 92, 96, 90, 255, 93, 97, 91, 255, 98, 101, 94, 255, 107, 109, 102, 255, 112, 114, 105, 255, 111, 114, 106, 255, 106, 111, 101, 255, 101, 106, 94, 255, 105, 110, 98, 255, 114, 119, 110, 255, 123, 127, 120, 255, 125, 128, 123, 255, 112, 116, 107, 255, 101, 104, 91, 255, 104, 109, 96, 255, 106, 110, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 112, 105, 255, 113, 111, 104, 255, 111, 108, 102, 255, 116, 114, 106, 255, 122, 120, 111, 255, 126, 124, 114, 255, 120, 119, 109, 255, 105, 105, 98, 255, 95, 97, 91, 255, 89, 90, 84, 255, 90, 91, 85, 255, 92, 95, 88, 255, 90, 91, 85, 255, 85, 85, 79, 255, 84, 85, 77, 255, 84, 87, 77, 255, 85, 89, 78, 255, 89, 93, 82, 255, 83, 87, 78, 255, 79, 83, 76, 255, 79, 81, 77, 255, 82, 85, 81, 255, 90, 94, 89, 255, 97, 101, 96, 255, 102, 105, 100, 255, 97, 100, 95, 255, 89, 94, 87, 255, 93, 97, 91, 255, 100, 103, 98, 255, 97, 101, 94, 255, 98, 102, 95, 255, 104, 108, 100, 255, 110, 114, 106, 255, 122, 125, 119, 255, 121, 125, 118, 255, 120, 124, 117, 255, 107, 111, 101, 255, 96, 100, 86, 255, 96, 99, 85, 255, 96, 99, 85, 255, 105, 109, 95, 255, 112, 117, 104, 255, 114, 119, 106, 255, 106, 110, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 101, 96, 255, 109, 107, 101, 255, 118, 116, 108, 255, 122, 120, 111, 255, 117, 116, 108, 255, 120, 119, 110, 255, 125, 123, 113, 255, 119, 118, 110, 255, 107, 108, 102, 255, 94, 97, 90, 255, 85, 88, 82, 255, 88, 90, 84, 255, 93, 95, 89, 255, 95, 98, 92, 255, 96, 97, 90, 255, 92, 95, 85, 255, 95, 98, 88, 255, 96, 99, 89, 255, 91, 95, 84, 255, 86, 90, 79, 255, 89, 93, 82, 255, 95, 98, 89, 255, 92, 95, 88, 255, 91, 94, 87, 255, 90, 94, 87, 255, 90, 94, 88, 255, 94, 98, 93, 255, 99, 102, 97, 255, 101, 103, 99, 255, 89, 91, 84, 255, 84, 87, 78, 255, 86, 89, 80, 255, 93, 96, 88, 255, 100, 104, 96, 255, 104, 109, 100, 255, 106, 109, 102, 255, 109, 112, 103, 255, 108, 113, 101, 255, 104, 108, 96, 255, 101, 104, 91, 255, 99, 103, 89, 255, 105, 109, 96, 255, 110, 115, 102, 255, 111, 115, 103, 255, 111, 116, 104, 255, 97, 100, 90, 255, 88, 90, 81, 255, 83, 84, 77, 255, 81, 83, 75, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 104, 95, 255, 105, 106, 97, 255, 118, 117, 110, 255, 121, 120, 112, 255, 125, 123, 114, 255, 125, 123, 114, 255, 121, 119, 111, 255, 114, 114, 107, 255, 110, 111, 104, 255, 102, 104, 98, 255, 93, 96, 89, 255, 92, 94, 88, 255, 87, 90, 83, 255, 84, 88, 81, 255, 90, 92, 85, 255, 101, 101, 94, 255, 109, 110, 102, 255, 114, 115, 106, 255, 115, 115, 107, 255, 115, 116, 108, 255, 114, 115, 107, 255, 102, 104, 96, 255, 94, 97, 90, 255, 99, 100, 94, 255, 104, 104, 98, 255, 99, 100, 94, 255, 93, 96, 89, 255, 100, 101, 95, 255, 99, 100, 94, 255, 96, 99, 92, 255, 92, 95, 87, 255, 89, 92, 84, 255, 90, 93, 85, 255, 94, 97, 89, 255, 95, 99, 91, 255, 91, 94, 85, 255, 85, 86, 79, 255, 83, 83, 76, 255, 86, 85, 79, 255, 89, 88, 81, 255, 86, 87, 78, 255, 87, 89, 77, 255, 92, 95, 82, 255, 104, 108, 96, 255, 111, 115, 104, 255, 113, 117, 106, 255, 104, 107, 97, 255, 94, 96, 87, 255, 87, 89, 81, 255, 84, 86, 78, 255, 89, 91, 84, 255, 95, 99, 90, 255, 95, 99, 88, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 108, 255, 110, 111, 103, 255, 105, 106, 97, 255, 107, 109, 100, 255, 117, 118, 110, 255, 124, 124, 116, 255, 126, 126, 119, 255, 120, 122, 114, 255, 113, 114, 108, 255, 110, 111, 104, 255, 110, 110, 104, 255, 104, 105, 99, 255, 91, 94, 88, 255, 86, 90, 84, 255, 90, 92, 85, 255, 93, 93, 87, 255, 94, 95, 89, 255, 98, 99, 94, 255, 102, 102, 98, 255, 107, 108, 103, 255, 109, 110, 103, 255, 108, 109, 101, 255, 107, 106, 100, 255, 100, 101, 95, 255, 96, 98, 91, 255, 97, 98, 92, 255, 101, 102, 96, 255, 103, 103, 96, 255, 100, 101, 94, 255, 101, 103, 94, 255, 97, 100, 90, 255, 90, 94, 83, 255, 90, 93, 83, 255, 87, 90, 80, 255, 87, 90, 81, 255, 95, 97, 90, 255, 94, 96, 88, 255, 88, 89, 81, 255, 87, 86, 80, 255, 76, 76, 69, 255, 70, 69, 63, 255, 70, 69, 64, 255, 69, 69, 63, 255, 67, 70, 64, 255, 78, 81, 74, 255, 91, 94, 85, 255, 96, 99, 90, 255, 95, 97, 88, 255, 97, 100, 91, 255, 100, 103, 93, 255, 99, 102, 93, 255, 101, 105, 97, 255, 104, 108, 101, 255, 103, 106, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 109, 100, 255, 108, 109, 100, 255, 113, 114, 106, 255, 118, 119, 111, 255, 119, 119, 112, 255, 120, 120, 112, 255, 117, 118, 110, 255, 118, 122, 114, 255, 114, 118, 111, 255, 102, 105, 97, 255, 97, 100, 91, 255, 99, 100, 92, 255, 107, 107, 101, 255, 114, 114, 108, 255, 107, 108, 103, 255, 103, 103, 99, 255, 105, 106, 102, 255, 103, 104, 100, 255, 99, 100, 96, 255, 99, 100, 95, 255, 102, 103, 98, 255, 109, 109, 104, 255, 110, 109, 104, 255, 113, 112, 107, 255, 112, 111, 105, 255, 106, 106, 100, 255, 97, 99, 92, 255, 95, 97, 90, 255, 98, 99, 92, 255, 97, 99, 90, 255, 97, 100, 90, 255, 101, 103, 93, 255, 99, 101, 92, 255, 94, 97, 87, 255, 92, 95, 85, 255, 90, 94, 84, 255, 95, 97, 90, 255, 101, 102, 95, 255, 104, 104, 97, 255, 92, 92, 85, 255, 76, 75, 69, 255, 74, 74, 68, 255, 75, 75, 69, 255, 71, 74, 67, 255, 69, 73, 67, 255, 64, 69, 63, 255, 73, 77, 70, 255, 79, 83, 75, 255, 90, 93, 85, 255, 99, 102, 93, 255, 101, 104, 96, 255, 106, 109, 103, 255, 109, 112, 106, 255, 107, 110, 104, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 106, 96, 255, 110, 112, 103, 255, 124, 124, 116, 255, 117, 118, 109, 255, 114, 115, 106, 255, 112, 113, 104, 255, 115, 117, 108, 255, 119, 122, 115, 255, 117, 121, 114, 255, 110, 113, 105, 255, 103, 106, 97, 255, 96, 98, 90, 255, 95, 98, 90, 255, 101, 103, 96, 255, 108, 107, 103, 255, 112, 110, 107, 255, 113, 112, 109, 255, 103, 104, 99, 255, 93, 94, 88, 255, 87, 88, 82, 255, 83, 84, 77, 255, 84, 85, 79, 255, 96, 97, 92, 255, 100, 101, 95, 255, 102, 102, 97, 255, 118, 116, 111, 255, 120, 118, 112, 255, 120, 118, 112, 255, 113, 113, 105, 255, 105, 107, 96, 255, 98, 101, 90, 255, 98, 101, 91, 255, 100, 103, 93, 255, 106, 108, 99, 255, 108, 110, 101, 255, 103, 106, 98, 255, 96, 100, 93, 255, 98, 101, 95, 255, 98, 102, 96, 255, 91, 95, 88, 255, 84, 87, 80, 255, 81, 83, 77, 255, 79, 81, 74, 255, 74, 77, 70, 255, 76, 80, 73, 255, 89, 92, 83, 255, 96, 98, 89, 255, 94, 97, 88, 255, 96, 99, 90, 255, 97, 100, 91, 255, 90, 94, 87, 255, 86, 90, 85, 255, 92, 96, 90, 255, 103, 106, 100, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 99, 88, 255, 97, 100, 89, 255, 96, 100, 89, 255, 101, 104, 94, 255, 108, 110, 101, 255, 117, 118, 109, 255, 122, 124, 116, 255, 121, 125, 118, 255, 113, 117, 109, 255, 101, 104, 95, 255, 102, 104, 96, 255, 108, 111, 103, 255, 114, 118, 111, 255, 118, 120, 115, 255, 117, 115, 112, 255, 119, 116, 114, 255, 118, 115, 113, 255, 113, 111, 108, 255, 100, 99, 94, 255, 90, 90, 83, 255, 87, 88, 81, 255, 84, 86, 79, 255, 85, 88, 82, 255, 97, 98, 92, 255, 100, 101, 95, 255, 103, 103, 97, 255, 112, 111, 105, 255, 113, 113, 107, 255, 109, 110, 102, 255, 111, 112, 102, 255, 118, 118, 108, 255, 124, 123, 112, 255, 127, 126, 114, 255, 119, 119, 108, 255, 111, 113, 103, 255, 109, 112, 104, 255, 110, 114, 108, 255, 107, 111, 104, 255, 102, 106, 100, 255, 103, 107, 100, 255, 101, 105, 99, 255, 95, 98, 92, 255, 87, 91, 85, 255, 86, 90, 84, 255, 87, 92, 86, 255, 84, 89, 82, 255, 81, 85, 79, 255, 79, 83, 76, 255, 89, 92, 84, 255, 95, 98, 89, 255, 98, 102, 95, 255, 96, 100, 94, 255, 91, 95, 89, 255, 92, 94, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 103, 94, 255, 103, 105, 95, 255, 109, 111, 101, 255, 107, 109, 100, 255, 95, 98, 87, 255, 91, 95, 84, 255, 93, 97, 86, 255, 99, 101, 91, 255, 106, 109, 99, 255, 107, 111, 100, 255, 105, 108, 97, 255, 100, 102, 91, 255, 94, 96, 84, 255, 100, 103, 93, 255, 105, 107, 100, 255, 109, 107, 103, 255, 110, 108, 105, 255, 111, 109, 106, 255, 106, 104, 100, 255, 100, 99, 94, 255, 101, 99, 94, 255, 103, 102, 97, 255, 101, 103, 95, 255, 98, 102, 92, 255, 102, 105, 96, 255, 103, 106, 97, 255, 100, 102, 95, 255, 97, 98, 93, 255, 100, 101, 95, 255, 112, 113, 104, 255, 116, 118, 107, 255, 116, 117, 107, 255, 117, 118, 108, 255, 121, 122, 111, 255, 122, 123, 112, 255, 119, 120, 109, 255, 115, 117, 106, 255, 105, 108, 98, 255, 99, 102, 94, 255, 99, 102, 95, 255, 105, 109, 103, 255, 105, 108, 102, 255, 98, 102, 96, 255, 94, 97, 92, 255, 93, 97, 92, 255, 94, 97, 93, 255, 88, 92, 86, 255, 85, 89, 83, 255, 87, 91, 85, 255, 90, 94, 88, 255, 90, 95, 88, 255, 88, 92, 85, 255, 87, 91, 85, 255, 91, 94, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 93, 255, 103, 105, 94, 255, 103, 105, 94, 255, 103, 104, 94, 255, 103, 104, 94, 255, 96, 98, 88, 255, 91, 94, 84, 255, 94, 97, 87, 255, 95, 98, 86, 255, 96, 98, 87, 255, 102, 105, 95, 255, 109, 113, 105, 255, 103, 106, 97, 255, 92, 94, 82, 255, 91, 93, 84, 255, 91, 94, 88, 255, 91, 94, 89, 255, 92, 95, 90, 255, 91, 92, 86, 255, 91, 92, 85, 255, 89, 90, 83, 255, 91, 93, 85, 255, 96, 99, 90, 255, 101, 104, 95, 255, 104, 108, 99, 255, 109, 111, 104, 255, 112, 114, 107, 255, 107, 110, 102, 255, 108, 111, 103, 255, 121, 123, 114, 255, 123, 125, 115, 255, 124, 126, 115, 255, 124, 125, 113, 255, 121, 122, 111, 255, 114, 115, 105, 255, 113, 114, 104, 255, 111, 114, 103, 255, 110, 113, 102, 255, 102, 104, 95, 255, 94, 96, 87, 255, 90, 92, 83, 255, 89, 91, 82, 255, 95, 97, 89, 255, 102, 105, 98, 255, 109, 111, 108, 255, 112, 114, 112, 255, 112, 114, 112, 255, 110, 112, 110, 255, 104, 107, 104, 255, 92, 96, 91, 255, 92, 95, 89, 255, 102, 102, 96, 255, 97, 99, 92, 255, 92, 95, 88, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 120, 111, 255, 111, 112, 101, 255, 99, 101, 91, 255, 101, 103, 93, 255, 105, 106, 96, 255, 110, 111, 100, 255, 112, 113, 102, 255, 106, 106, 98, 255, 99, 99, 92, 255, 96, 97, 89, 255, 100, 101, 92, 255, 101, 103, 93, 255, 99, 101, 90, 255, 96, 98, 86, 255, 97, 100, 92, 255, 98, 100, 96, 255, 89, 93, 87, 255, 85, 89, 83, 255, 88, 92, 86, 255, 86, 90, 84, 255, 82, 86, 80, 255, 83, 86, 80, 255, 91, 94, 87, 255, 93, 96, 88, 255, 93, 97, 88, 255, 104, 107, 99, 255, 111, 113, 106, 255, 113, 115, 108, 255, 114, 116, 108, 255, 113, 114, 106, 255, 107, 107, 100, 255, 110, 111, 103, 255, 118, 120, 112, 255, 125, 127, 118, 255, 124, 127, 118, 255, 115, 117, 107, 255, 107, 110, 99, 255, 109, 112, 101, 255, 110, 114, 103, 255, 103, 106, 96, 255, 89, 91, 82, 255, 87, 88, 80, 255, 85, 87, 79, 255, 91, 94, 85, 255, 94, 97, 87, 255, 94, 97, 88, 255, 100, 103, 95, 255, 106, 109, 102, 255, 105, 109, 103, 255, 104, 106, 103, 255, 101, 103, 99, 255, 95, 99, 92, 255, 94, 98, 91, 255, 100, 101, 95, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 97, 255, 110, 111, 101, 255, 119, 119, 108, 255, 127, 127, 115, 255, 128, 128, 116, 255, 120, 120, 109, 255, 107, 108, 99, 255, 106, 106, 98, 255, 112, 112, 105, 255, 112, 112, 105, 255, 108, 109, 101, 255, 107, 107, 100, 255, 111, 111, 104, 255, 110, 110, 103, 255, 101, 102, 95, 255, 97, 99, 93, 255, 98, 100, 96, 255, 94, 96, 92, 255, 85, 89, 83, 255, 79, 84, 77, 255, 82, 86, 79, 255, 86, 89, 83, 255, 88, 90, 85, 255, 89, 91, 85, 255, 92, 93, 88, 255, 98, 98, 94, 255, 102, 103, 98, 255, 104, 106, 99, 255, 104, 106, 98, 255, 107, 108, 101, 255, 113, 114, 106, 255, 116, 117, 109, 255, 118, 120, 112, 255, 118, 120, 112, 255, 119, 122, 114, 255, 114, 116, 107, 255, 103, 104, 93, 255, 97, 97, 85, 255, 96, 96, 84, 255, 101, 103, 91, 255, 106, 108, 97, 255, 109, 113, 102, 255, 103, 107, 97, 255, 99, 102, 93, 255, 99, 102, 93, 255, 100, 103, 94, 255, 96, 99, 90, 255, 102, 106, 97, 255, 108, 112, 103, 255, 109, 113, 104, 255, 109, 111, 104, 255, 111, 111, 106, 255, 109, 110, 105, 255, 102, 103, 97, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 110, 102, 255, 114, 114, 107, 255, 113, 113, 105, 255, 114, 114, 106, 255, 119, 119, 111, 255, 122, 122, 114, 255, 120, 120, 112, 255, 121, 120, 113, 255, 118, 118, 111, 255, 109, 109, 102, 255, 99, 99, 91, 255, 103, 103, 96, 255, 107, 107, 100, 255, 104, 104, 97, 255, 102, 103, 95, 255, 107, 107, 100, 255, 106, 106, 99, 255, 99, 99, 92, 255, 95, 97, 91, 255, 97, 99, 94, 255, 95, 97, 92, 255, 91, 93, 88, 255, 87, 90, 85, 255, 87, 89, 85, 255, 95, 96, 91, 255, 103, 103, 97, 255, 106, 106, 100, 255, 105, 106, 100, 255, 109, 111, 105, 255, 120, 122, 117, 255, 119, 121, 116, 255, 116, 117, 112, 255, 113, 115, 108, 255, 117, 119, 111, 255, 117, 120, 111, 255, 111, 114, 103, 255, 106, 109, 97, 255, 103, 105, 93, 255, 100, 101, 89, 255, 101, 102, 90, 255, 105, 108, 95, 255, 108, 111, 100, 255, 109, 112, 103, 255, 104, 107, 98, 255, 92, 95, 87, 255, 89, 91, 83, 255, 82, 83, 75, 255, 81, 82, 75, 255, 90, 92, 85, 255, 96, 98, 92, 255, 100, 101, 96, 255, 109, 109, 104, 255, 114, 113, 108, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 109, 100, 255, 109, 110, 102, 255, 110, 111, 104, 255, 112, 112, 106, 255, 117, 116, 110, 255, 108, 108, 102, 255, 99, 100, 93, 255, 97, 97, 90, 255, 98, 98, 90, 255, 100, 100, 93, 255, 102, 103, 95, 255, 108, 108, 101, 255, 111, 111, 104, 255, 115, 115, 108, 255, 116, 116, 109, 255, 106, 106, 99, 255, 93, 95, 89, 255, 93, 96, 91, 255, 100, 102, 98, 255, 98, 100, 95, 255, 92, 94, 89, 255, 96, 97, 91, 255, 100, 101, 95, 255, 96, 97, 90, 255, 93, 96, 86, 255, 97, 100, 91, 255, 103, 106, 98, 255, 110, 113, 107, 255, 119, 123, 118, 255, 125, 128, 124, 255, 118, 120, 114, 255, 108, 109, 100, 255, 101, 103, 92, 255, 102, 104, 93, 255, 111, 115, 104, 255, 113, 118, 106, 255, 113, 117, 106, 255, 114, 117, 107, 255, 119, 120, 112, 255, 118, 119, 111, 255, 104, 107, 99, 255, 94, 98, 91, 255, 85, 90, 82, 255, 83, 86, 79, 255, 85, 87, 80, 255, 96, 96, 90, 255, 100, 100, 94, 255, 104, 104, 99, 255, 111, 110, 104, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 100, 255, 102, 103, 97, 255, 89, 92, 86, 255, 86, 88, 82, 255, 87, 89, 80, 255, 93, 95, 87, 255, 98, 99, 92, 255, 105, 105, 97, 255, 110, 110, 103, 255, 111, 110, 103, 255, 109, 109, 102, 255, 102, 104, 98, 255, 95, 98, 92, 255, 92, 95, 89, 255, 97, 99, 94, 255, 99, 102, 97, 255, 99, 102, 97, 255, 100, 102, 96, 255, 102, 104, 97, 255, 106, 108, 101, 255, 96, 98, 89, 255, 91, 93, 82, 255, 91, 93, 83, 255, 94, 96, 87, 255, 103, 105, 97, 255, 107, 108, 102, 255, 104, 105, 97, 255, 100, 100, 92, 255, 96, 96, 88, 255, 96, 97, 88, 255, 101, 103, 93, 255, 101, 103, 92, 255, 100, 103, 93, 255, 103, 106, 98, 255, 103, 106, 98, 255, 97, 101, 93, 255, 96, 99, 92, 255, 99, 101, 94, 255, 99, 101, 94, 255, 97, 100, 92, 255, 102, 104, 95, 255, 107, 108, 100, 255, 109, 109, 102, 255, 103, 103, 96, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 100, 93, 255, 96, 99, 93, 255, 98, 100, 95, 255, 95, 97, 91, 255, 93, 95, 88, 255, 100, 102, 96, 255, 105, 106, 100, 255, 103, 105, 99, 255, 107, 109, 104, 255, 110, 112, 108, 255, 105, 107, 102, 255, 101, 103, 98, 255, 99, 101, 96, 255, 99, 102, 96, 255, 101, 103, 94, 255, 98, 99, 90, 255, 100, 101, 91, 255, 98, 99, 89, 255, 92, 94, 84, 255, 93, 94, 84, 255, 92, 93, 83, 255, 99, 99, 91, 255, 105, 106, 99, 255, 113, 113, 106, 255, 107, 107, 100, 255, 97, 96, 88, 255, 94, 93, 84, 255, 93, 92, 84, 255, 91, 92, 85, 255, 90, 92, 87, 255, 88, 91, 85, 255, 89, 92, 85, 255, 87, 90, 84, 255, 85, 89, 82, 255, 92, 95, 88, 255, 98, 100, 92, 255, 103, 103, 95, 255, 110, 111, 102, 255, 111, 111, 103, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 89, 80, 255, 86, 90, 80, 255, 93, 97, 87, 255, 96, 99, 89, 255, 96, 99, 89, 255, 109, 111, 104, 255, 116, 117, 112, 255, 118, 120, 116, 255, 114, 115, 109, 255, 108, 109, 100, 255, 100, 101, 92, 255, 105, 105, 96, 255, 107, 107, 98, 255, 116, 116, 105, 255, 112, 113, 102, 255, 108, 108, 98, 255, 97, 98, 89, 255, 98, 99, 91, 255, 103, 103, 96, 255, 98, 98, 91, 255, 96, 96, 88, 255, 94, 93, 84, 255, 93, 92, 84, 255, 85, 86, 78, 255, 82, 84, 79, 255, 86, 88, 84, 255, 89, 91, 87, 255, 89, 91, 86, 255, 86, 88, 83, 255, 88, 91, 86, 255, 92, 94, 88, 255, 97, 98, 91, 255, 106, 106, 98, 255, 113, 113, 105, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 99, 88, 255, 102, 105, 95, 255, 108, 110, 101, 255, 109, 111, 102, 255, 108, 110, 101, 255, 110, 113, 104, 255, 119, 119, 110, 255, 119, 119, 109, 255, 122, 121, 111, 255, 115, 115, 105, 255, 107, 107, 98, 255, 107, 107, 98, 255, 108, 108, 100, 255, 105, 105, 98, 255, 100, 100, 93, 255, 106, 105, 98, 255, 107, 106, 99, 255, 101, 101, 93, 255, 97, 97, 90, 255, 99, 99, 94, 255, 96, 97, 94, 255, 87, 89, 84, 255, 83, 85, 80, 255, 75, 78, 72, 255, 82, 85, 80, 255, 86, 89, 84, 255, 89, 92, 86, 255, 89, 92, 85, 255, 96, 97, 91, 255, 100, 102, 95, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 111, 255, 116, 117, 110, 255, 115, 115, 109, 255, 118, 117, 112, 255, 121, 119, 113, 255, 118, 118, 110, 255, 112, 112, 103, 255, 106, 106, 98, 255, 99, 100, 92, 255, 95, 96, 88, 255, 94, 95, 87, 255, 98, 99, 91, 255, 101, 101, 94, 255, 100, 101, 94, 255, 105, 106, 100, 255, 106, 108, 102, 255, 100, 102, 95, 255, 94, 96, 89, 255, 94, 96, 90, 255, 96, 97, 93, 255, 94, 96, 92, 255, 90, 92, 86, 255, 87, 90, 83, 255, 92, 94, 87, 255, 98, 100, 92, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 118, 111, 255, 109, 112, 104, 255, 103, 106, 99, 255, 93, 94, 88, 255, 86, 88, 80, 255, 88, 90, 82, 255, 87, 89, 81, 255, 89, 91, 81, 255, 91, 93, 84, 255, 96, 97, 89, 255, 99, 101, 93, 255, 106, 107, 102, 255, 112, 113, 109, 255, 110, 112, 108, 255, 107, 109, 104, 255, 94, 96, 88, 255, 90, 92, 83, 255, 96, 97, 90, 255, 97, 98, 92, 255, 91, 94, 87, 255, 92, 96, 87, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 103, 94, 255, 96, 98, 91, 255, 87, 89, 81, 255, 83, 86, 77, 255, 86, 89, 81, 255, 90, 92, 84, 255, 94, 96, 88, 255, 98, 99, 91, 255, 100, 102, 94, 255, 106, 107, 102, 255, 101, 103, 96, 255, 97, 100, 91, 255, 96, 97, 89, 255, 95, 96, 89, 255, 95, 95, 88, 255, 96, 97, 90, 255, 100, 101, 92, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 101, 92, 255, 100, 101, 93, 255, 97, 98, 90, 255, 95, 96, 88, 255, 98, 99, 91, 255, 104, 105, 98, 255, 103, 104, 98, 255, 105, 106, 100, 255, 112, 113, 109, 255, 111, 111, 107, 255, 107, 107, 102, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 87, 78, 255, 82, 85, 76, 255, 88, 90, 82, 255, 96, 98, 89, 255, 96, 98, 89, 255, 103, 105, 97, 255, 112, 114, 107, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 100, 90, 255, 102, 104, 95, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +"format": "RGBA8", +"height": 64, +"mipmaps": false, +"width": 64 +} + +[sub_resource type="ImageTexture" id="ImageTexture_35hew"] +image = SubResource("Image_ktpj2") + +[sub_resource type="BoxShape3D" id="BoxShape3D_d3j6k"] + +[resource] +item/0/name = "MeshInstance3D" +item/0/mesh = SubResource("QuadMesh_p0vo4") +item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/shapes = [SubResource("BoxShape3D_mtfk2"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)] +item/0/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/navigation_layers = 1 +item/0/preview = SubResource("ImageTexture_p1rdv") +item/1/name = "MeshInstance3D2" +item/1/mesh = SubResource("QuadMesh_4ay7f") +item/1/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/1/shapes = [SubResource("BoxShape3D_d3j6k"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)] +item/1/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/1/navigation_layers = 1 +item/1/preview = SubResource("ImageTexture_35hew") diff --git a/Worlds/GreenPlanet/tiles.tscn b/Worlds/GreenPlanet/tiles.tscn new file mode 100644 index 0000000..35dd1c7 --- /dev/null +++ b/Worlds/GreenPlanet/tiles.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=9 format=3 uid="uid://b7s8i67yqvwbw"] + +[ext_resource type="Texture2D" uid="uid://r8cr41blojpm" path="res://Assets/Textures/stone wall 7.png" id="1_ftah0"] +[ext_resource type="Texture2D" uid="uid://blnfsojw4ukq4" path="res://Assets/Textures/grass.png" id="1_nc7wu"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ulcfh"] +albedo_texture = ExtResource("1_nc7wu") +texture_filter = 0 + +[sub_resource type="QuadMesh" id="QuadMesh_yxhjj"] +material = SubResource("StandardMaterial3D_ulcfh") +orientation = 1 + +[sub_resource type="BoxShape3D" id="BoxShape3D_mtfk2"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jnpkd"] +albedo_texture = ExtResource("1_ftah0") + +[sub_resource type="QuadMesh" id="QuadMesh_twahx"] +material = SubResource("StandardMaterial3D_jnpkd") +orientation = 1 + +[sub_resource type="BoxShape3D" id="BoxShape3D_d3j6k"] + +[node name="Library" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("QuadMesh_yxhjj") + +[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"] +shape = SubResource("BoxShape3D_mtfk2") + +[node name="MeshInstance3D2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.07427, 0, 0) +mesh = SubResource("QuadMesh_twahx") + +[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D2/StaticBody3D"] +shape = SubResource("BoxShape3D_d3j6k") diff --git a/Worlds/TestingRange/Enemies/dummy.tres b/Worlds/TestingRange/Enemies/dummy.tres new file mode 100644 index 0000000..3a09017 --- /dev/null +++ b/Worlds/TestingRange/Enemies/dummy.tres @@ -0,0 +1,14 @@ +[gd_resource type="Resource" script_class="Enemy" load_steps=3 format=3 uid="uid://bdkcwve6d35gl"] + +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="1_o7yng"] +[ext_resource type="Texture2D" uid="uid://brjk5pu0up85s" path="res://Assets/TextureAtlases/dummy.tres" id="2_bbk0y"] + +[resource] +script = ExtResource("1_o7yng") +title = "dummy" +target_type = 1 +sprite = ExtResource("2_bbk0y") +health = 100 +penalty = 10 +movement_speed = 1.0 +spawn_cooldown = 1.0 diff --git a/Worlds/TestingRange/Enemies/target_dummy.tscn b/Worlds/TestingRange/Enemies/target_dummy.tscn new file mode 100644 index 0000000..a248fa8 --- /dev/null +++ b/Worlds/TestingRange/Enemies/target_dummy.tscn @@ -0,0 +1,83 @@ +[gd_scene load_steps=12 format=3 uid="uid://cgcslt0rsg6e3"] + +[ext_resource type="Script" path="res://Scripts/target_dummy.gd" id="1_f72ee"] +[ext_resource type="Resource" uid="uid://bdkcwve6d35gl" path="res://Worlds/TestingRange/Enemies/dummy.tres" id="2_7pldl"] +[ext_resource type="Script" path="res://Scripts/health.gd" id="3_8hqew"] +[ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_0ruff"] +[ext_resource type="Script" path="res://Scripts/hitbox.gd" id="4_yinjs"] +[ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="5_t0dpu"] +[ext_resource type="Texture2D" uid="uid://brjk5pu0up85s" path="res://Assets/TextureAtlases/dummy.tres" id="6_agkvc"] +[ext_resource type="Texture2D" uid="uid://r202vo47jw1q" path="res://Assets/Textures/enemyhealth.png" id="8_m8sgd"] +[ext_resource type="Script" path="res://Scripts/StatusEffector.gd" id="8_melp1"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_21dgw"] +radius = 0.7173 + +[sub_resource type="ViewportTexture" id="ViewportTexture_ieafj"] +viewport_path = NodePath("Dog/SubViewport") + +[node name="PathFollow3D" type="PathFollow3D" node_paths=PackedStringArray("status_manager") groups=["Enemies"]] +loop = false +script = ExtResource("1_f72ee") +stats = ExtResource("2_7pldl") +status_manager = NodePath("Dog/StatusEffector") + +[node name="Dog" type="CharacterBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.204674, 0) +collision_layer = 4 +collision_mask = 3 + +[node name="Health" type="Node" parent="Dog"] +script = ExtResource("3_8hqew") +damage_particle_scene = ExtResource("4_0ruff") + +[node name="Hitbox" type="CollisionShape3D" parent="Dog"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.527022, 0) +shape = SubResource("SphereShape3D_21dgw") +script = ExtResource("4_yinjs") + +[node name="DirectionSprite" parent="Dog" instance=ExtResource("5_t0dpu")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.642479, 0) +pixel_size = 0.04 +texture = ExtResource("6_agkvc") + +[node name="Sprite3D" type="Sprite3D" parent="Dog"] +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.47182, 0) +pixel_size = 0.02 +billboard = 1 +texture_filter = 0 +texture = SubResource("ViewportTexture_ieafj") + +[node name="StatusEffector" type="Node3D" parent="Dog" node_paths=PackedStringArray("hbox")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.18114, 0) +script = ExtResource("8_melp1") +hbox = NodePath("../SubViewport/HBoxContainer") + +[node name="SubViewport" type="SubViewport" parent="Dog"] +transparent_bg = true +size = Vector2i(200, 55) +render_target_update_mode = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="Dog/SubViewport"] +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 32.0 +grow_horizontal = 2 +alignment = 1 + +[node name="ProgressBar" type="TextureProgressBar" parent="Dog/SubViewport"] +visible = false +offset_top = 36.0 +offset_right = 200.0 +offset_bottom = 236.0 +grow_horizontal = 2 +grow_vertical = 2 +step = 0.0 +value = 100.0 +fill_mode = 6 +texture_progress = ExtResource("8_m8sgd") +tint_progress = Color(0, 1, 0, 1) + +[connection signal="health_changed" from="Dog/Health" to="." method="_on_health_health_changed"] +[connection signal="health_depleted" from="Dog/Health" to="." method="_on_health_health_depleted"] +[connection signal="took_damage" from="Dog/Hitbox" to="Dog/Health" method="take_damage"] diff --git a/Worlds/TestingRange/Levels/training_arena.tscn b/Worlds/TestingRange/Levels/training_arena.tscn new file mode 100644 index 0000000..64be873 --- /dev/null +++ b/Worlds/TestingRange/Levels/training_arena.tscn @@ -0,0 +1,139 @@ +[gd_scene load_steps=24 format=3 uid="uid://uv7hjsgisy31"] + +[ext_resource type="Texture2D" uid="uid://r8cr41blojpm" path="res://Assets/Textures/stone wall 7.png" id="1_45ikc"] +[ext_resource type="PackedScene" uid="uid://dxgxbtf68lcv5" path="res://PCs/hero.tscn" id="2_w387b"] +[ext_resource type="PackedScene" uid="uid://b0nady5xm88bo" path="res://Worlds/GreenPlanet/Enemies/land_enemy.tscn" id="3_y4upj"] +[ext_resource type="PackedScene" uid="uid://dsasunnk47n8o" path="res://Scenes/item_card.tscn" id="4_i7krx"] +[ext_resource type="Script" path="res://Scripts/Resources/enemy.gd" id="4_ucmnf"] +[ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="5_15cd7"] +[ext_resource type="Resource" uid="uid://bmoreipvttks8" path="res://PCs/Universal/ClassCards/Assault/card_assault.tres" id="5_806m0"] +[ext_resource type="Resource" uid="uid://cvf5bxtu6er17" path="res://PCs/Universal/ClassCards/Sniper/card_sniper.tres" id="6_evvng"] +[ext_resource type="Resource" uid="uid://q23ludhji5p4" path="res://PCs/Universal/ClassCards/Gatling/card_gatling.tres" id="8_k80ff"] +[ext_resource type="PackedScene" uid="uid://ddbbwx0yy16lh" path="res://Scenes/tower_base.tscn" id="9_imodf"] +[ext_resource type="Resource" uid="uid://bvpkvmda845o5" path="res://PCs/Universal/ClassCards/BombLauncher/card_grenade_launcher.tres" id="10_g0syk"] +[ext_resource type="Resource" uid="uid://1xke2uy2vfuf" path="res://PCs/Universal/ClassCards/Flamethrower/card_flamethrower.tres" id="11_d3sci"] +[ext_resource type="Resource" uid="uid://dh5fjnbp8auw1" path="res://PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres" id="11_jk0fe"] +[ext_resource type="Resource" uid="uid://bhmbk26whdsys" path="res://PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres" id="12_7lpov"] +[ext_resource type="PackedScene" uid="uid://cgcslt0rsg6e3" path="res://Worlds/TestingRange/Enemies/target_dummy.tscn" id="14_rvk27"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_mqtlc"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_75uqo"] +albedo_texture = ExtResource("1_45ikc") +uv1_scale = Vector3(30, 15, 1) + +[sub_resource type="BoxShape3D" id="BoxShape3D_3mcyj"] +size = Vector3(15, 1, 30) + +[sub_resource type="AtlasTexture" id="AtlasTexture_jx270"] +resource_local_to_scene = true +atlas = ExtResource("5_15cd7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="Resource" id="Resource_dn3eg"] +resource_local_to_scene = true +script = ExtResource("4_ucmnf") +title = "dog" +target_type = 0 +sprite = SubResource("AtlasTexture_jx270") +spawn_power = 10 +health = 100 +penalty = 10 +movement_speed = 1.0 +spawn_cooldown = 1.0 + +[sub_resource type="AtlasTexture" id="AtlasTexture_qwrm2"] +resource_local_to_scene = true +atlas = ExtResource("5_15cd7") +region = Rect2(0, 0, 32, 32) + +[sub_resource type="Resource" id="Resource_bb3cf"] +resource_local_to_scene = true +script = ExtResource("4_ucmnf") +title = "dog" +target_type = 0 +sprite = SubResource("AtlasTexture_qwrm2") +spawn_power = 10 +health = 100 +penalty = 10 +movement_speed = 1.0 +spawn_cooldown = 1.0 + +[sub_resource type="Curve3D" id="Curve3D_3hq0c"] +_data = { +"points": PackedVector3Array(0, 0, 0, 0, 0, 0, -3, 0, 0, -3.045, 0, 0, 0, 0, 0, 0, 0, -3, 0, 0, -3, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, -3, 0, 0), +"tilts": PackedFloat32Array(0, 0, 0, 0, 0) +} +point_count = 5 + +[node name="Node3D" type="Node3D"] + +[node name="StaticBody3D" type="StaticBody3D" parent="."] +physics_material_override = SubResource("PhysicsMaterial_mqtlc") + +[node name="CSGBox3D" type="CSGBox3D" parent="StaticBody3D"] +transform = Transform3D(-1, -8.74228e-08, 0, 8.74228e-08, -1, 0, 0, 0, 1, 0, 0, 0) +size = Vector3(15, 1, 30) +material = SubResource("StandardMaterial3D_75uqo") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"] +shape = SubResource("BoxShape3D_3mcyj") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.503804, 0.863818, 0, -0.863818, 0.503804, 0.00649166, 26.8242, 4.02927e-05) + +[node name="Character" parent="." instance=ExtResource("2_w387b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.805513, 0.5, 2.30163) + +[node name="Enemy" parent="." instance=ExtResource("3_y4upj")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.28337, 0.601179, -1.23188) +stats = SubResource("Resource_dn3eg") + +[node name="Enemy2" parent="." instance=ExtResource("3_y4upj")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.26298, 0.601179, -3.22988) +stats = SubResource("Resource_bb3cf") + +[node name="assaultcard" parent="." instance=ExtResource("4_i7krx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.7802, 0.5, 3.16356) +card = ExtResource("5_806m0") + +[node name="acceleratorcard" parent="." instance=ExtResource("4_i7krx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.11938, 0.5, 4.73946) +card = ExtResource("8_k80ff") + +[node name="snipercard" parent="." instance=ExtResource("4_i7krx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1017, 0.5, 5.17215) +card = ExtResource("6_evvng") + +[node name="grenadecard" parent="." instance=ExtResource("4_i7krx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.385228, 0.5, 6.25718) +card = ExtResource("10_g0syk") + +[node name="grenadecard2" parent="." instance=ExtResource("4_i7krx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.51176, 0.499999, -5.26455) +card = ExtResource("11_d3sci") + +[node name="rocketcard" parent="." instance=ExtResource("4_i7krx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.13185, 0.5, 6.25718) +card = ExtResource("11_jk0fe") + +[node name="gluecard" parent="." instance=ExtResource("4_i7krx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.12773, 0.5, 6.25718) +card = ExtResource("12_7lpov") + +[node name="towerbase" parent="." instance=ExtResource("9_imodf")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.77234, 0.5, 2.6958) + +[node name="towerbase2" parent="." node_paths=PackedStringArray("inventory", "block", "collider", "minimap_icon") instance=ExtResource("9_imodf")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0766634, 0.5, -9.7488) +inventory = NodePath("../towerbase/Inventory") +block = NodePath("../towerbase/CSGBox3D") +collider = NodePath("../towerbase/CollisionShape3D") +minimap_icon = NodePath("../towerbase/Sprite3D") + +[node name="Path3D" type="Path3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, -9.72541) +curve = SubResource("Curve3D_3hq0c") + +[node name="PathFollow3D" parent="Path3D" instance=ExtResource("14_rvk27")] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, -3, 0, 0) diff --git a/button_stylebox.tres b/button_stylebox.tres new file mode 100644 index 0000000..a727835 --- /dev/null +++ b/button_stylebox.tres @@ -0,0 +1,12 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://de3eok2g4r2k"] + +[resource] +content_margin_left = 5.0 +content_margin_top = 2.0 +content_margin_right = 5.0 +content_margin_bottom = 2.0 +bg_color = Color(0.505882, 0.678431, 0.901961, 1) +corner_radius_top_left = 30 +corner_radius_top_right = 30 +corner_radius_bottom_right = 30 +corner_radius_bottom_left = 30 diff --git a/export_presets.cfg b/export_presets.cfg new file mode 100644 index 0000000..3e46e4b --- /dev/null +++ b/export_presets.cfg @@ -0,0 +1,101 @@ +[preset.0] + +name="Linux/X11" +platform="Linux/X11" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../tower_defense/Linux/output.x86_64" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.0.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=true +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +binary_format/architecture="x86_64" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 +unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" +\"{temp_dir}/{exe_name}\" {cmd_args}" +ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") +rm -rf \"{temp_dir}\"" + +[preset.1] + +name="Windows Desktop" +platform="Windows Desktop" +runnable=true +dedicated_server=false +custom_features="" +export_filter="all_resources" +include_filter="" +exclude_filter="" +export_path="../../tower_defense/Windows/output.exe" +encryption_include_filters="" +encryption_exclude_filters="" +encrypt_pck=false +encrypt_directory=false + +[preset.1.options] + +custom_template/debug="" +custom_template/release="" +debug/export_console_wrapper=1 +binary_format/embed_pck=true +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false +binary_format/architecture="x86_64" +codesign/enable=false +codesign/timestamp=true +codesign/timestamp_server_url="" +codesign/digest_algorithm=1 +codesign/description="" +codesign/custom_options=PackedStringArray() +application/modify_resources=false +application/icon="" +application/console_wrapper_icon="" +application/icon_interpolation=4 +application/file_version="" +application/product_version="" +application/company_name="" +application/product_name="" +application/file_description="" +application/copyright="" +application/trademarks="" +ssh_remote_deploy/enabled=false +ssh_remote_deploy/host="user@host_ip" +ssh_remote_deploy/port="22" +ssh_remote_deploy/extra_args_ssh="" +ssh_remote_deploy/extra_args_scp="" +ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}' +$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}' +$trigger = New-ScheduledTaskTrigger -Once -At 00:00 +$settings = New-ScheduledTaskSettingsSet +$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings +Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true +Start-ScheduledTask -TaskName godot_remote_debug +while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 } +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue" +ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue +Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue +Remove-Item -Recurse -Force '{temp_dir}'" diff --git a/new_theme.tres b/new_theme.tres new file mode 100644 index 0000000..cfb721c --- /dev/null +++ b/new_theme.tres @@ -0,0 +1,43 @@ +[gd_resource type="Theme" load_steps=4 format=3 uid="uid://b6a0ip4p72tgx"] + +[ext_resource type="StyleBox" uid="uid://de3eok2g4r2k" path="res://button_stylebox.tres" id="1_jlhwk"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_c2xpa"] +content_margin_left = 10.0 +bg_color = Color(0.505882, 0.678431, 0.901961, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_06uvd"] +content_margin_left = 20.0 +content_margin_top = 20.0 +content_margin_right = 20.0 +content_margin_bottom = 20.0 +bg_color = Color(0.14902, 0.380392, 0.635294, 1) +border_width_left = 4 +border_width_top = 4 +border_width_right = 4 +border_width_bottom = 4 +border_color = Color(0.505882, 0.678431, 0.901961, 1) +corner_radius_top_left = 20 +corner_radius_top_right = 20 +corner_radius_bottom_right = 20 +corner_radius_bottom_left = 20 +shadow_size = 5 +shadow_offset = Vector2(7, 7) + +[resource] +Button/colors/font_color = Color(1, 1, 1, 1) +Button/colors/font_focus_color = Color(0.113725, 0.113725, 0.113725, 1) +Button/font_sizes/font_size = 24 +Button/styles/normal = ExtResource("1_jlhwk") +HBoxContainer/constants/separation = 10 +Label/colors/font_color = Color(0.890196, 0.890196, 0.890196, 1) +Label/colors/font_outline_color = Color(1, 1, 1, 1) +Label/font_sizes/font_size = 32 +LineEdit/colors/font_color = Color(0.113725, 0.113725, 0.113725, 1) +LineEdit/colors/font_placeholder_color = Color(0.243137, 0.243137, 0.243137, 0.6) +LineEdit/styles/normal = SubResource("StyleBoxFlat_c2xpa") +PanelContainer/styles/panel = SubResource("StyleBoxFlat_06uvd") diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..e2bbeb9 --- /dev/null +++ b/project.godot @@ -0,0 +1,130 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Multiplayer Tower Defense" +run/main_scene="res://Scenes/Menus/main_menu.tscn" +config/features=PackedStringArray("4.1", "Forward Plus") +config/icon="res://Assets/Textures/icon.svg" + +[autoload] + +Data="*res://Scripts/data.gd" +Game="*res://Scripts/game.gd" +WaveManager="*res://Scripts/wave_manager.gd" + +[display] + +window/size/viewport_width=1920 +window/size/viewport_height=1080 + +[filesystem] + +import/blender/enabled=false + +[input] + +"Move Forward"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"echo":false,"script":null) +] +} +"Move Left"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"echo":false,"script":null) +] +} +"Move Right"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":84,"key_label":0,"unicode":116,"echo":false,"script":null) +] +} +"Move Backward"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) +] +} +Jump={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194328,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +Sprint={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":122,"echo":false,"script":null) +] +} +Interact={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":80,"key_label":0,"unicode":112,"echo":false,"script":null) +] +} +"Open Text Chat"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +"Primary Fire"={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +"Secondary Fire"={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +Ready={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":71,"key_label":0,"unicode":103,"echo":false,"script":null) +] +} +Pause={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} +"Equip In Gauntlet"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null) +] +} +"Select Next Card"={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +"Select Previous Card"={ +"deadzone": 0.5, +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +"View Map"={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} + +[layer_names] + +3d_render/layer_1="World" +3d_render/layer_2="FPSView" +3d_render/layer_3="Minimap" +3d_physics/layer_1="Environment" +3d_physics/layer_2="Players" +3d_physics/layer_3="Enemies" +3d_physics/layer_4="Items" +3d_physics/layer_5="Interactables" +3d_physics/layer_6="PlayerBlocker" + +[rendering] + +textures/canvas_textures/default_texture_filter=0