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 zcmV+r2JiWaP)Jp*K@mjk?A;m(<9$gWL6SGTxgY1fbGdT{?4gX7HCv`3n=2UMV8F8+S@AgE zX{Qe--AqI^Q=gfi57Bh}JYrMz!LNEXzt?be#uKInwl?8OO*aa{G7X`Pg06U1xK~R@ zbsVc>Ep23lM})oEOi`=OqrSwI$So~M z9gsbUNthr3Jj5unPKE-0sX584v2V2OnYffV{mW7?9$0b)wy;NBh7%xh zA|y`0We|JVat5{_gDiQ{IPo)S`+F9XHnIIZl6wA*M)34hU*$kK@URZN@GAfE_QM~j z@$tu3cP$H-v*1(itG(Fa!46FH_zc*{1;#7yx9Oq94WK5_>lKD@99CeXR*nO#ui(Mq zXJK=A=tmYV*5~lEacB6jzJf!BepLhD2%tf9%rs=iBNH1n?&h!>e};#?z?k9x3_k;t zYJ%&X9I~)qwjz7?06rto=4s>GeC|H0E{Au<`PCk1@gQEC|C5t-t-k1{KL5U&Lj>M)1<&s!enfMinA~|smRfA{Cjd$W!D}oB z%7JS+U}^yM@Ly|_i)}f;IWTPi+K&_*P|ZJ{19f)Jzvt5iaDEBJupB4{tPZ3$fasq9 z(t6T3i)op)C48j#(zqFBRGk^lXkE%d8aKl7u4QnL)|AFkjiLrX3v=)P^f&MnAoH4X zS&2{m=;@=swe77x!raWGD|#^7*A<%SIj85}>Zhmy%!C7YOD4mN5swz%YKSy1L!ShD z>B}Eo3maH%8a%VVr$#mj}CWE&FjL zt`>c>9IgIg1At=Mf|Q^qm)6l6XlbKgT*^bPL$RjcBX!|0a!pa zpAdRNxj8A9EPRgF%6X{=D>+HAR&!sCC-uP_Cq3U9{cHnh$x6Z7JPnyP*K?nRE3GSy z^JtvqdO3LWXZ$4VXW#%lr97l@673pXX}vbC+W2xa(s!#PH5GMh<1w$sb2*^hM{WF0wW0=~?LOLg&VZ4TBaG1+ zhc%lYahc_M)_380IG-hVr+1Oqqw_pklW-6<0PluMh-ffIqBV6YmUkd}&v>L-@jBpn z9u5tl-FQ!NudvF$mjmtDx|h0ZsyQ@(C>d?zSiSizew409sIz*n9>G(q#_V&P)&Q)6 zC3*Dkp(XJAoNP3j61I9xmAcB-{G^*U#xccP6O=G2TPq&6o0Q<5vBBdW#!* zzf*&E-@N(YW8^vR?aQG7>@>Vbkel;#J+5ZW=Q?nevz6;YY<2H*aA*Lr^zKou4(>hn zakYvooSSX~$RKX1X~}_2&iL45<>EbbR$OZy@b%RgJwPw+j^cQ9ER`7 z@D5}BEhKz2kr0rW%DqeVxLM7T@PHVO%P2p>2Muln9@V44rg?ZB#Ye+q2WGThtcT;f z*Khv)Kb&|EBlijrrJrKebvaNDlmq2JIZzJV#eu&-@B$K8rnHj)0000Jp*K@mjk?A;m(<9$gWL6SGTxgY1fbGdT{?4gX7HCv`3n=2UMV8F8+S@AgE zX{Qe--AqI^Q=gfi57Bh}JYrMz!LNEXzt?be#uKInwl?8OO*aa{G7X`Pg06U1xK~R@ zbsVc>Ep23lM})oEOi`=OqrSwI$So~M z9gsbUNthr3Jj5unPKE-0sX584v2V2OnYffV{mW7?9$0b)wy;NBh7%xh zA|y`0We|JVat5{_gDiQ{IPo)S`+F9XHnIIZl6wA*M)34hU*$kK@URZN@GAfE_QM~j z@$tu3cP$H-v*1(itG(Fa!46FH_zc*{1;#7yx9Oq94WK5_>lKD@99CeXR*nO#ui(Mq zXJK=A=tmYV*5~lEacB6jzJf!BepLhD2%tf9%rs=iBNH1n?&h!>e};#?z?k9x3_k;t zYJ%&X9I~)qwjz7?06rto=4s>GeC|H0E{Au<`PCk1@gQEC|C5t-t-k1{KL5U&Lj>M)1<&s!enfMinA~|smRfA{Cjd$W!D}oB z%7JS+U}^yM@Ly|_i)}f;IWTPi+K&_*P|ZJ{19f)Jzvt5iaDEBJupB4{tPZ3$fasq9 z(t6T3i)op)C48j#(zqFBRGk^lXkE%d8aKl7u4QnL)|AFkjiLrX3v=)P^f&MnAoH4X zS&2{m=;@=swe77x!raWGD|#^7*A<%SIj85}>Zhmy%!C7YOD4mN5swz%YKSy1L!ShD z>B}Eo3maH%8a%VVr$#mj}CWE&FjL zt`>c>9IgIg1At=Mf|Q^qm)6l6XlbKgT*^bPL$RjcBX!|0a!pa zpAdRNxj8A9EPRgF%6X{=D>+HAR&!sCC-uP_Cq3U9{cHnh$x6Z7JPnyP*K?nRE3GSy z^JtvqdO3LWXZ$4VXW#%lr97l@673pXX}vbC+W2xa(s!#PH5GMh<1w$sb2*^hM{WF0wW0=~?LOLg&VZ4TBaG1+ zhc%lYahc_M)_380IG-hVr+1Oqqw_pklW-6<0PluMh-ffIqBV6YmUkd}&v>L-@jBpn z9u5tl-FQ!NudvF$mjmtDx|h0ZsyQ@(C>d?zSiSizew409sIz*n9>G(q#_V&P)&Q)6 zC3*Dkp(XJAoNP3j61I9xmAcB-{G^*U#xccP6O=G2TPq&6o0Q<5vBBdW#!* zzf*&E-@N(YW8^vR?aQG7>@>Vbkel;#J+5ZW=Q?nevz6;YY<2H*aA*Lr^zKou4(>hn zakYvooSSX~$RKX1X~}_2&iL45<>EbbR$OZy@b%RgJwPw+j^cQ9ER`7 z@D5}BEhKz2kr0rW%DqeVxLM7T@PHVO%P2p>2Muln9@V44rg?ZB#Ye+q2WGThtcT;f z*Khv)Kb&|EBlijrrJrKebvaNDlmq2JIZzJV#eu&-@B$K8rnHj)00001DYb%Cm*h5Sg(M9(DNXC5$2hi6ksX*Itl z1>ez+2t^EIGPA9POeT%4>*oE@~=<%0ep35!*eo<2@wz1O2ti%oCN#dxXS6H(jag&g0t}Ig? zr-;Bt7AYhlK|uwZ(BU9K*`%3u_DwZ>ODL0v(ceN9oE$}z$QviMLRD4D8tE#1I;vvs z|L19IGt*x6P!i~Ub=}ViAh-|IYp(ly>bmtaAn*cQn=OBt<}~+Bdab2JkAd(GaCy_x zlmp;u7Z`oEWG*+P0EJ)EfR77cC=U$Z0|V>cteX2ce*$vb^h9^S;Sms{^Wlv@AQosC z_!|sU00009a7bBm001QD001QD0fJ)%8~^|aD@jB_RCodHSc#J4whnvyD*yk>3DGee zG@GOj%STU*t2UB&0ub$)$)ErIK5q*AZO@yb^YF)>&d^7NeI@8K6r8>I2+KDO!|wpt z4Srm{zRdU_@T?yP*z_Dtg4v!v4F6AX|C*@)FP~>!;j8=>`!QUa|A77P07RG2@n*lJ zH3k7gfafjeA%|r@0%iz4<@1pZfGNeVqEX{Zn`YPWJ$$A_W9TOm~aXgEWcj=qp`@hbZK{tmPPsC?F zQi=Rw-_3Z12HgWtk*Iv&((-2_Tp>W#`^~-$LB*r;p;pWP)=v&+YtTIaI=#9l))v8* zpLP6twgA3gdbS}@-nwT_i(|{rI(|J_sFkx3&bMn24uBUw zI;#MY2!7*O|HhR9D)k(89w5Q)>S%m4*)=% zL9(hD5#Mkudjql_nZ3e$hA+dhN{68V&=*Aa1bI{d*12p4v6OB5pY)pDH)=S?{mXKza1&G5jNd4XBIP9QMkGe4hiG z=HWc^SdH|uX6m(a*v|7&E|Cv)y&X2q!};iA^_qG#--N@*G?@M~Fazc70M`r9=T>LdqzF|kd=@`7z*;vFQ2p5+trxWaD9@Tl zG&p?#hLrvCQRkPLeh@V(dV-?;J4J>wlk%tE02x*^7466h{ zeb)57^sMC7KC(B=LtoCUHt{Yh_iDqMSx;{t9)P3dmFy^34?a6-H*AN~rU_BU&A zcmOB>MBtMNZvNfnwfE;e@P}=lrooZ{7`Y?8Xx+1h3Pjt{^^BSxllAy-y1mn#mACF0 zHc*Nw%{8le`2b`<)UNv`vqnH9a3f{fZMeIJAPZBw?xz85iIoPY41j^}62cP$P=cK- z;Y(hAp5;!US8H&}0FX?y@`BapFPkymt~tH?6*YQ$F|IWPXHHU^xC<{yRV=(3L)rzp@{DaR_+6dp+d~08(cNeAAsx-_bW{aM}Q@9)gu` z&KVaoJtYH)D>Y!-QwL!65N!2`JzSsmm1qqc{Q88XoYCT)<^9<5BN{zl>wD_GC!6r} z&qpFta#1+^kzMj@^%%H#_1t&?SsNd(aYr>kE%v`f3?<|D6>*KF2zuF(&E-6fuj2Fj zmKG7;$mZ)>%&x<}@j-Wvi}CsPPcHEKCs900000 LNkvXXu0mjf4`1D( 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 zcmV+)1K|9LP)*gs)Da2iAgJ@H6$$}u7Zn$;2^sA z8vGA*6(;z%-IBro`rXjUbbQEt2w;DNZ zQTRZ(&y@j%FO{wb{G>P=@S9?HDl-lt)ia*`#riKca&BI@SGY58myDlz)R#1wh3QGD z?Xo-Y$dDvK9GwzN*c9oPT9C}D`v%Is36{lU$lGBRR~%V#;_VZ)BwbCZmguHDHmfT4 zzj=Dr&|uKLDFJnlzW>?<_1o~Z<@=w9zW;Ru;RiS`RQ$`5)5yE%TNSNyAEN7UdQs8z z9XQ*7wtGi&wXzhJ9kMKVIf3R`Xt{>Se2~@8ImdS}wI;vl3U>FPTkb~}z5()LXam;_ zuyOzZ010qNS#tmYE+YT{E+YYWr9XB600CD?L_t(o3GI|UZUQk7g}o6SLb(795*-pH z=SaaZI73d6V^DAoN+dd@G+Y3oNa@TD%8-XW0r; z>3$pe=Hpk7@yp#Iia~#l9TgyPN*uiP-RNUog`!f?HXuEzAe|joUoI36g+jkpD|H?L z(9KC4S163Wwsr)71>e7iPMQUbX=^6|8pM6w8P=z{iROu&sa;I^T+GgcNJ9w8S6={} zYbNGuG1=7F;@*2#RTu4xp%F9&)QQ>REMkFZ0x*kPAyNP)ak@1xeg!$5c;Te3b_A0& zIssr&?!=GqZ;OCL0}z8Dub8O;m<58{I_v`5Qqf`nRGc6}5J?ozlD}dMwAdDiq8+e6 za_kd8`xAEc8Af{10l%AiFAX7T-SrHJ#L%H4=B+xQUPg7m_1extQX}aE2r~ZyVyPd< dJs%&X11F0jQLYNY<^TWy002ovPDHLkV1kyiV=e#y 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 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 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 zcmVE&~eRT6&_+Zx(0j{AIBojVyxQ>gma}aH55ktgZ@A3VYRDNomYueTgfTUs;ws zB4-qX2tfjPNKj&v97X(+^Rlz{zNwmTiGp|(d25u>#gQQ^UZ1EX>6((97Cj|Tj3%t^jnun&#&?^z1{mVw%6Frdd4$#|vENoBo3AY3^I}N>lS5gL?-qZ<<=- z0Iqgn_*skV@tWk2V^62y;{y6)FnABn_4=+F_nbdLbX$JW9ULCPgw(q?{s6jkXX%c{ z`WyfN010qNS#tmYE+YT{E+YYWr9XB600TBjL_t(|0qvPhZWKWbg$KllERqEX35k<% zCJvM{aS|jX1dFf$MdIgy9KBdo?Xt_R8BKaNRZ~CDeqXz~JCnm<|Lg>I0#BL1vz6vQ zynpxG8}Ihxr_vlt#l>vIxa^g-3Pd@84D$j3Z8nH90NKW?Ad~>8G%p~sDj^-f3iAR1 z?JS7rEH>L;ZGJXi>`$wJQ<|Ttf)oI!G%r;Ug)n^t&cVDuh_urHB0($mL@&e?fN0PP z08z~_fJ-nBXkh?R;+6X%7bOHB5~$MnjCKgXOu%#7`{V(*UxY@=|J%LI_0{p$a4~G@ zwRAi$MRumcY5rfhl`KnPowas!4eNUQsQ@fPt>jvJMvSvoOM~aP`Y*O7J#(!jKHvRp zO1!;!*&N4UmQFW-nn1=jJq|}M(#ZjE;@lree(PpBvL9^ZM}p>dm8Ey;|6; z_dF6bzN9<`Vd8joINaZTeF!He9|lwh=35`H)<1}Ug|2^mX~~&mDF7r&&y>u2TGnE) zqQUbr7HLxfL=w_ z`{@8!e5B8Be=~RUkyx!YCk4RfksNm~#Qy=dPJz(co}lx5zU@99Rymp%n> zXU8$H{!W0ARZoGX09F|DR;c?3z=Ssl_MGb{1mIlFL@vydBcLCD9)Q*N0{6ehIQfxZ zUuVp7EDJ>B>O;S@0$S!hkGPSi1w)GTrz!vex2k{vc#N|VhR~~m=+#G@i@FIixY7P} z1t3tb3aTq$=E@78lnUr2(kodB?rF7FFQ!KmYf}I~sF#o=&Sx3xtq<0F_gI>(`IIBT z!oA~wHGCv^kJT55vaSbP<~?mX00iHH;7Lxe%``6BB>+S`6GVl1o*;CC%YS6rR1 zbTdjHJ_ci&sn3N%LH=D|_t;du^QvC|-}`g*B$B2Ewl3jmO*e|dG7Z6vqON#HctFd< z62eEq9zzBczE*m?&M%77b^cInM8fl6S3ODmN9a|6Ts`uIMZo;*av@vYsKPJ85fOh9fP`~@eqK>kXM{Hr^PsGc^cTCiC<<0<5;hVuQ$JO z$T5C*_39YgfTd$~Td#+9046D!moc?I)QDo#@xVp%z5XhI(gV;Y$HKfMrF&LK#`S2G z>MZ5O`&9rq@Tta+7J&CU>{+Dc0I+b3TZ*qeOk3uAW4Zv?!lS~p|8RA^{k(kpppLAT zOty0#2qrJOUV~!daJg-_H{Xxx)a3Do3Bm5ozn#X3$Vqjux)Wpsjo$=rek$muDbxBFtZ@0 z7S>pchXK^Yy*~W`HYc4xp@6T$d0P#=UO~tVWu1b`})fOT>UHv|7#43 zZ~5!%h7a)L)aWsMuO1pry`jYoiKLin6 zZ=Bu%lBl!`X72#z$}6z09Z)Kyv}H9}rnOq7oEc4TY!?6#Dix%K<5~6++j}xTJI8AD zTz4G-OjJ4!G6s(X&WU1$sN+howSS}?1|Z365JrldXQ0&+ec00000NkvXXu0mjf`Y%l~ 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 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 P00000NkvXXu0mjf`esCi literal 0 HcmV?d00001 diff --git a/Assets/Textures/crosshair.png.import b/Assets/Textures/crosshair.png.import new file mode 100644 index 0000000..645e255 --- /dev/null +++ b/Assets/Textures/crosshair.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d0btebva6djdl" +path="res://.godot/imported/crosshair.png-c5fc4b061aab0e53d43a2e64ec40573a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/crosshair.png" +dest_files=["res://.godot/imported/crosshair.png-c5fc4b061aab0e53d43a2e64ec40573a.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/crosshair.png~ b/Assets/Textures/crosshair.png~ new file mode 100644 index 0000000000000000000000000000000000000000..39edcfb3e707c8a036ce2d70ff2aa977afb9f519 GIT binary patch literal 730 zcmV<00ww*4P)HEIlr)RzczF1DrJM|NgH(fgsjfCct3!%mr z0`$^G7xgLKu_oj37&X`D9d)YS4yj(X@BO=)mkmdUx+dW<-LhR_nTFV!Ybo9m?$EQT zW#L2NL0bkCzEZkY=4Zv3GQTUfXA@K4Q$0hOD%Pr4&)Rw60pV~ySI~dwQD4$xm~%5y zyJh#_kRVEg5E=zm$l)?1)s)Qs_YIeP)2xa|m$yX`TO1j(;vE#VAYBcqY0(XNauikW zfAe(Gqa)?+EfHvV^1Qb`XxxGCZO{8U^1Sb3@IS(ZS@Ew*PU9beX4mBxUBli!^vnI=(hu%*XaNX+ z8G`@-010qNS#tmYE+YT{E+YYWr9XB6009z7L_t(|0qxk)3WG2ZL{Z!S|L0aoT_hzT zAjuYb`qCK1%-+nb;Ve{j|`eSRRmWW2i-~ds>SgxZ- ze}=f;de`EYuD!Z3juba?%@x?~@oET%;9ilvbGM6a-5>)(OH0~(283Q;=$)GeX*GnA zB1f*71|;LgM-NEp1J`0Rsn^A)X~|l+25@dnik{Uy;Vky2{z2Hc0|XFCDmj4@IH3^W z1Ww?DARrFn5N7b6AP(Xn4naU1#39V!=^zea1_J~TKmY**5cnqW25>?ST;JzVZ2$lO M07*qoM6N<$f)@x(ssI20 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 zcmV;p2S@mcP)eth?Shm$W5PUg(KTR#ffa>-Cy+2p$a@sW^)GRz~+KwkI(~w;AY{gr`Q8TMA z3m*!{92rpfO6f+x&x$hvzbkfTQsWR-J+({?8#QcZoxE_ra8Ev0G%NF{FNvfJv(r+$ zWOw6|VuA!321QoL;V~e!AesH`8~pK2vML@^-Zmv1ab(DfHzsOPx~8RCqNnA_QBt}8 z&eOGq;z9RF0veut|E(9AcA&iN`(H=CUp|JqN4O|d{i~AG$cO0LRjua$+Be|rvZ@)o zaJ~th54P^;KT@6Suw}vPDYVT)#|^YB23b|kIk|_Kb@@ftu(uC=a=(4)8}Mal0w20S zhyVZp32;bRa{vHbMgRa@MgbI*LqPxl1@TElK~#7F?VL?=)jAMH1H}dyvKFQcvkm4f z<;~wVGGxkH7_tPQ0|G_Jwpwag-S$aU%D%q(`M%RFx9ywUhX;Nj009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_0D;&9Ud5J=dI@bvWbJ*j(q zd}OU97;N1Tcw?=Eq_-xjAMYwLxQY*b1nFT(AbK9n)Nft@ECaWCteN0fdt-hGv=U$) zw33R~&a?o0`Tx`Rhp(UGQ9v;SAOL|I5_oOp`T68u3?|2F$BSmXguo$z{3`UYF%8TJ zz}*a`%YlaP09sD)(&qig|M(EhWeOl_27%{wk=+fab;3HBL7Opq33Q#5Q!;BOjg>gh8;RlSE6y4hiN}mP%-UR5$1HQ`#aO=uM#!g}Wi-9H_B-!y z7Jw3poH(qDfFw;V`OCR2U(cA&Tk@B8R$fo8qp?`UeN=au&k~<9W@Q`CuUEyvGZU@0 z7dfST+&;p;xd3PlwYDD--#W)$yR`6nPm&(5sQ3I{<-OH;a}|!GKBC6qD(iNXzp4OO z-UVDG0HX`&?EYRK1D(ym+kB%7*_$8q#2}z50Ak6a2zWdBr^Tmz#O1|D8I#_-nX^+? zxWBmdJzGHMd?{a2cWvIJeyg|7?3IrjR%_PIA7w3QeOa|v7XYh?SB+CH-c>r7_ZNW_ zkEkcnsByF?yk0JVqQ)TCoz{UIYh4Q#{FnY2Xb!-`z6PkKtp{)3HNew*gwS_I0;d-M z7Wx&_=-!@2b9%J@z3J=S!}~9@t^xqSzW}}L-6REOdfIGvE?A^2W7HutU^vi%A8Un;XL(6yD z?gAjTG>M>T>l+#BAn-4Np8W3V^Y6^#N4)45cXB+!6}(z{7%BkAxM|^ufMw!%@)c1F zv6vGzxaznL7l0PvEp2qNXfMb#ZWUrPOv;}A)EB&{oR#H;{_ zi5zZjJT#tFXii$TX)`?7l13nB!SjMHyZbv-rBJ>G?_I5fwS_3 z0w2u9>nfbh88d?SpMu4@jA215QJ|Es)L?HUYjjlh1{VG0^ zAGRkD;De(RATtF7AOL|u0(=HA2$1d&fB*y_009U<00IyQMc@bDV=!h+=Ra})0000< KMNUMnLSTYzN~k6P 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!ia0vp^CqS5k4M?tyST~P>fiW-B**PFHIhlb$V`Aw^@c#NG{a?W+{_IF&eH#^-6VJVFy|;Pgz31hj zLwl~+-TWJIWQJxGobJpX;8P)q$mUDIi&yYW-zsM)*TUzy$L z{2}+y&(K)!cL$G(eX*0`G!C44XH)DhzWnqHTUqXIzpydr^sDc4F0*&!pU~gc_?KB? z%I|$w<+E>RSiih#vjG?ZoCO|{#S9F3${@^GvDChdfq})^)5S5Qg7NL;gS-p^BCL*I z?i)YSi9TrYYx~LDJKsyoF*3zBe*OE^v*CcSK!>6L2V)~kpD<(N4TeSm0gne3f&v}9 lqk^LWGMX4hTt;YQ4!+6SW489mUSQe6;OXk;vd$@?2>|c2>WTmW 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 zcmV;#20QtQP)g(4yrDO4;HZ~?K@Sl9%Ss9@A4Gsz@EmSHAAf~{affum+M_XBhlUp6N!_%v!ZHoP&8(?-SGY${ zM54kc!ahp|6uwouR^m6s@e+S2ww6M(;8H!k@haA;SWj3f;Su4%R5GWR=TTqciKUkp zrS{7nz$U~T0laAB*dR$3ztps3R@*mP^v#nIk1lVMJeD}(B*g0zH78wTQVr2#@+8Tt z-2dlk8x!ND?w$ZNzdFw65V-fDu;)0xr;bxNgT@!QPFMUH$!Y3a^u3BUcnn?JaCuYF zv;(->fxc%mVnvElqimO9z{dr2grWN$+SW>0mCreUf~76_MR#y`1jBN_YyA%g|7Z;+ z5*tnc000SaNLh0L09-}@09-}^6qG|j000F0Nkl^^nL30gGz;bTE zf;9_n!IBfqHAb8WWFe0%E4H5#r>eT!BehbMvfnT1>gpCeJ@sEF&RCBO)8b^FIU(Km`s_{wl)&4%Af^;~t?-7EMexqYAtEhL!b<$I@MxHOe zR>31PU|czO)UoES_I8vHk0<;j(jj+S9B{VDDB=L<_1j+MMag2G9e;Yc_91W>4H8K}y)5l1S?x{MLpZ-;tS)5t_vwc~8vi=NC=0AI_5bwH%&gF}|=o)v~IWJ#Erb&(n<@2D5qw;EHfqjyc# zUG@ne3P_q59aDfZ#8HhmhX#n&d0f%8BRC=rw|aeNb|^MlXJx#)mkHN;Kc$`kEP;BS z3|oY{_Q>=9H-r~h+v>tqdSfj*SDr_>bT86#Rt;%Iym5{8#`C-NSMw0w$_H20@0J@t zR>T$R(G54NmA-z+g`NEYuzJHGes*VrXozZ7a-p@5KLmPT6(b$Ub$zo!dUn;6d%LclW|jPV_?F{JXVi@0I6Q)$Zw{HR1KC%tB*%8g%Uu=Os6QBZMBsv3r3s_*9#z zw=$~2vGC=5gI}}(Bsrs0Q8f-!syB)9cuoFx{53a zXFSaG9JT1gV{wsg?|OD^vh_2$=^l&I^A-8l9MQR_A?m%Q>+TJ}3IQ>=(mTTUHayoO zHC&61S((CE6aIKzfy@jLa5nQB( zaLa!L)M8i8Q4^A5rbqV6<5?`~Tit9@2On!aC=Xi4JjkfEP|p#bEp1v)wP%fQ>Cp2P zI##$@kF_?b8-ORoB47dN=y7-$vwarkDjxOEW-{ul&|`Vc%zHXkJWCB8hpdZ^M|vpR zEPl3L>l*3MHQDnlrsW}Z1Moy<1$kK6YnHjQaG3Y1x>#RkM7^B34@Q1w^`L%7oTIsF zJmQ%3CiRuw03>K1-$w$on|8MEK2p0a7tp^0xGhVMt5$w>xYsw~BY1q=9o)`4fllDi a1pWc_*uNL4sH0&30000qthNMM`tKi~La1dR5 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 WVZ`C6!KZ5g0000oX`F(*>DsYyNL!3AX@O^2 z=p#Tsg9*d2rlZjab=Su&4XWOZs9yE&{kz(dDaU|@X5k6LvRz@BhRB+0Dc%z9HnNGN z@PY8KEdvT)DqXMglj2O3-xS;Pu^I5Go?7M?>%Z8@+Iit2;b1;jG=An$U(%j37v`k) z%I?P@Mwk#9Iz?8=;W8rCl+6D3jeh%PDTv3Aw?zqC92v6W9Tv4HT~kuiqNn7^QBt}8 z&C^Mbk5#+3hoI@v^Iiuaunm>6=Y1Y}UgZe<4{&bQ`~}Hr@?G?DO$+Wr=LVc!)HHnu z&NiXv-b&bsZ^l#{@t6BY=b9@K$>+*}PV0RA&<$mYN7a#O!7#9rE zH~;_u32;bRa{vHbMgRa@MgbI*LqPxl1o=rsK~#7F?OV%@8!-&s1nDD(RIr`wAr+*s ztzZx7#1-U_N)qtE1wn}9qeRV&Z7yJFMnk@zI)P506X*mwfliVo3{rdVEX8&0X9z^^r zIY!tlafO31c#JqJxo)@H=Tq9B+Z#(5j+MMag2G9e;Yc_91W>4H8K}y z)5l1S?x{MLpZ-;tS)5t_vwc~8vi=NC=0AI_5bwH%&gF}|=o(P65WJ#Erb&(n<@2D5qw;EHfqjyc#UG@ne z3P_q59aDfZ#8HhmhX#n&d0f%8BRC=r_j-M2b|^MlXJx#)mkHN;Kc$`kEP;BS3|oY{ z_Q-Pz^5gvt*0#EEmEKs3&Xwm8F5QdtoK-_w5pP_hz482R{nb2#xAMW2^}FQ;kQH%- zdUV6hYNf9qa$#qG0Ic3{h@airAR3~Ym0V~oH~(%e+I!{sRkeG%Xia#1Dzng7o(5fe#CgdL;0U2daqM283_jIn>aC2b za4dW|U!j-rs&u0`mD<^Z9CzbOF7!C{6#)IDuQ0muNQas~qOKwf!Zt|rBrmPuQU0sA?sea-t}Fc>ag_J)29PyVwfG}mxq*>@ zWc>(lH0R+mo>wC=E3!bjB=3&ntLT{Vwz3Wx-_ica=wK}Ni|CL&NIhXg{~-khW3f^Q z&!MBoC2_qv$t8Q_ymf5hMmSa<@kG5@Eml1;KcmI-=5fw&G2SdE_m9S`9#2DrW%WjV zBi$C3u9etckE{!S1Mq;ffO|i;yvo2Vk4TNx+w=F80J7FrjkU+lN+7%e%m}-h$r%qb zJx47%@mO4>+q<4!n{53|Zo0?f^n69WHAi&rX^497>AHIZutGo#uJn%Zy$#RxNDbGb zV-_=8Z|Sh|L-4tmYLWV^2CH7rlMdFRuVv1q4+PKhjP!cCEL^K6TW{g$c?1`!A>8sG z0kznbbJT?7nCX%I@^}`D`c^la)WOGE56XkqF%L3oE!1;_XG@#bQ|(#fTRQZ7g^m?& z)?=+r>IUEmu?ScII(i%)#%!O3xr#^qvzd(gD)d-hGxMH~70*(G$06&Yf_zWJOcL%rgPM{MwG=cx* WH@lb)A<;+x0000B)68s=t8#Hr4&vh1 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 IM6N<$f)D6{w*UYD 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 zcmV-Z4XpBsP)(Hf$R0XRpZQ8U#8bi_|#Z_=|C^(2N zz6SpTT?JPKK~Mw{H+Nr)lz6TcT10QSIX}L8zr)EF@W)I&?>0_A-YPipXhd5`ENacq zw9-R6A%>H>YfsM1#Q1l8+~QO9Caik>fA7!Lp3b;B_*#U=blWKi%QVE+3bx`c;VwOw zObZ_f4>~fS@TJmIRen;Ot@4{n`Tu!y1Z>lIO52X6Yrp?Md_N6YKWeZ$E2ik z|DC66jE+>h2O`k)=y|Vw(7X+mvgdssdS2xS8Xn->s`*zXr}1~u%QY>u55WyMy{Kua z9XQ*B?t44wB)_Ew*?z--mlNnnK<72IEmgDnIp_Ee=GNsGUBT`i^vnI=@)u8(XfD|c zbHD%q010qNS#tmYBhfDgI)V1;=cE?$litJZEV)Zm(q z>zp_C=LN`3$$Yi3Q6WFo$f$-9rs3z_bKl@OF5eM0%FA4of5ZcW&-tzOxByiX#FWTu z^mxW*MSWKjv%Di*AAowINAHiA^v=nCXq=xpZ=NIHYrla0(G{jaMx*H@!^E;Yd0Cs-BrU> z8C{)}DBSl|o*9k?9%o;>I-HaD;rDos=LL|de7XY2F~T#3M&21yOiyqg7yp;TXMaXr z=kEZ68gEHv+$Xq?qSN0BvA~mA-Y$Ury5tmC;WMn#SnYq?MTokN?{C$=P@|W8!AJWGGEF24iJ1^`}pk1!QkX}tK*Fa0*`nz#20HC|FWpFM4`62Ay12Wfdl zmB+46=$Gbsxd7BPN;dL!jH2Dk_vG?bMeFg{Pwh#&P~)W}`cx1P2>DEWXO#y&upr zlKQ#xIE&lZgzx{FDs;yM$O*G1 zTipXrc(t=SFF+-f!9aUrGi_JA>y(FF@ExZaUxR-<9{Y4Z%jy1+{5WQf$H9oX9!#+c zuVT`;&iyLBm@s*?GPf4oA7W{L%#PcwGNJ&Erf)1D%<=gEBHtRox@F01Epj>qBp8rW7Ml-`tLE3aWXq7)PIGsoEF7s$F zfQ-cLj7WrE<`EY!V~T-SnDG2`eB$Ddyn=UW9RJYVE`WPUmMDi5yNnTc4|0t#ab`F^ z&h7H&INHc@nZxt~NZ6T~>9K`J4$knjf@xpjig(XQ3pVl$&ZT+f3I62*C?*KsX_XX{sk`yr zB1imLZfSG9BfpH{Kk|W-^K|i?V|12B_Rah%&qx>8`MFQO0X&%s(JMV3thvZ8?tX9V zb6z~DRcC4e^EI$@7#?T8>XYlhHplVZS@G&Lo?%5MNTGT{}Oxb{4r zNH`pi!~L#xmJ6KPp4O3l@FR{dan7Hv*}wB!<+;AR03u{FKht0r^SCE_druuJzSOj% zseH2!=gjTm&QmS?~^fuFWIPsYe zyzL7hVO2PW-@Ve4E*HQPVVYx{vsW$#-Y2VakcY-U@!Qo#?%Tk!hf{WHgeyHB#Bz?=Svp>E zJHOyu{s|~Jxg zE6(o}%XQ}Sch#yn`K*+ecPHoV0=Rgm8H#be_IP-~nWMAgXe!<(F=}L8^$PywFGZ!x zlzgrS~sqjkq)g&Xz#SzZ7Y5eAnVpN_XW z!M*7l>2C^9+o$Qn=Q5MZFH>|JyYpm!^7dm$Cp?A2v{aNL? zX0(6x0^~$bE(8tAD-TOC$2*SVt55j7HiKEer1HLqsa}ug`d4{bH#@)9{4CLII9cxv zXN*C?;hcFZ=kR!K1}i<1Znb9k>Sa~4(l?yfn#XWuT^ZDhk2nnI>2N~->I_zT%PDj1 zGkkS6E4){mUrFekm0>x*+cU5{$d2#v(7rx{oxZyC^a9S=Yky<^dh<_<+8J7vLxXxU pq|klK3_k70d!)oC{kc!I|1WPl%~#XFquT%g002ovPDHLkV1k&$?ezcv 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_gun.png.import b/Assets/Textures/glue_gun.png.import new file mode 100644 index 0000000..d39fb6c --- /dev/null +++ b/Assets/Textures/glue_gun.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://oblavj8vj30n" +path="res://.godot/imported/glue_gun.png-e9e16bf72630f36d6fabf28ef7667749.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/glue_gun.png" +dest_files=["res://.godot/imported/glue_gun.png-e9e16bf72630f36d6fabf28ef7667749.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_icon.png b/Assets/Textures/glue_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9168e564f2a5a2037c5da8ceac19b9da2757c200 GIT binary patch literal 841 zcmV-P1GfB$P)lFgAO7J5mX!$L`5964lYGXt>9}(W77(48j=(#u7Zn$;2^sA z8vGA*6+l;in zB77)3;K+c&S4vL={H!ZzqlI8nkz+Q|y{3-@F*dE;*$^(9S7Yi?F* zhwM&VVoVc8BSD^3GI$J1wIs9hzM)^=3_0-_^0q19h$BT>yaS@_>PNV+ivFDBH2xv_c2Vm&fR+t7yDVyn zT{z!__6J*c^k1o3cE~j0^%R;Hp!EhCmV&JQ&N;b<_`3X}YuMX|KDpnr`~zIfXf!?N z9H0OI010qNS#tmYE+YT{E+YYWr9XB600DtXL_t(o3B{K|PQ)+_MLP&_2G$_Wifgdv z7#xXXu;&`AkcKs9U{l7@{OH@Yj#+L^;NP4oG)>$NAqe4CYidOs?_ z$Cs}|7Spqy0`w#k-;cMa0{r~?nZk;L1QbVGu_WcI)&UkrOad`?10XSjc*5|LQ6Q|( z1uQ=UoXE~?QoD}(n%@na_8Qe8jP{?~4bWOu@QFq~7ikAP@hI^cyXpWZu)U z0IaAuj}it*x&?3?HC6#eRnK{=0Hdnryt@OaLkKc%5p4fCR-Xe~#UJi}C;3Ddi;Iuj zfhah#dxB#7{<$k5Ru~JL&OlZzz#?&hP_N^b_9H1OXdS(W+&Ok`?m$*;1`@sKssIpO zTeXGqAQS-h3c@x)&wbGHMG6HVtAJQ|t}wJfs6&`(crA=#SR8R|yTmPjltu~Jj)ZKp zb4Sd&$bI{_z>AJ-R$PE1=&mh@1T#B}8@MqYU?3J}JI~8sDK=hdUJl`v^p-MzMMID$ T2&D$;00000NkvXXu0mjf=sJ9} 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 zcmV;~119{5P)iMM2MdZgbg1H>Ad2Fsb#N&nwSrZbHm0qRv>{26;wrc}6dXhs zzXtz-u7azAASi-}o4a3&NIcgHEuuHvoQL<`_i*wC{4ql_o%(Sw^R6AAiiYQt3*p8m zn(3g05ke`=u_k6_V*I<_Z}6#lJ)nC1fA7!Lx~w}I_?m=AHOqE|Wg23uuBCWWIHcuL z%fkD@{k9A!e4+Gog&!4XEBvb1PQ)j{uX={FHJq+tEoYm;eZmpbC~80Rs4ofV`MFuC zU9!7zh%-f$FlmacVBj(!H7}X{?Hl~|O;Zq$CU1)pwm7on#M>`wQM&3l5!$XzsfhaUQc-~77G;YCX+4DXQJn!=m>h9qzU-cIxr?EHD%T+D12f=kXIj?Hz zZ8+V4&O0k*r@o~++5Suho{ym|3GG+VvRKLL=bWQkNUX^(x`drw=#~4yr7tZIXdduk z-RuAW010qNS#tmYB4-D{1BfXme--@~V~HWBFL@`9>X=hJpobAtR)`{97er)qh; z`m|luoJ<6?9}bv&om!pGv3VY~AH1aPe2h_>6jOiN$3MfW&zB0gVv2)YJ(J8C0qq@w zXuW_Fa>c5dARg>Ypqo@CcmXHGINE9^RE-tCjF|M_c2*!2R;KhPrP3YaFWI{*05a%( zCqG)pc18u#i+td!mjPIdJC+VPFdq^SK**5(O9RI^w+V|ez>EqoK&=x}-(UB@Tuh)U z;u5F0u6;9s4hX(#;T78RRIF>?Ou&J(ApfJ02(89&pNe_=G=C;Q0JRL{3rU0)v5a9J zi$MwZF-G%S0vd>95~0PN$KVbNF(h-iIeu#X2$rdD1UaVVor2|v(_61K{T{d$q>}cu z)S*3I&}XD+$K_WX?#mW1 zz^xPWv&L(`K}OYLT>LVk^H!_Y4#~X<00000NkvXX Hu0mjf5ID|9 literal 0 HcmV?d00001 diff --git a/Assets/Textures/grass.png.import b/Assets/Textures/grass.png.import new file mode 100644 index 0000000..3e41218 --- /dev/null +++ b/Assets/Textures/grass.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blnfsojw4ukq4" +path="res://.godot/imported/grass.png-bd8693609e2236b94b5eb6d9741bc1d7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/grass.png" +dest_files=["res://.godot/imported/grass.png-bd8693609e2236b94b5eb6d9741bc1d7.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/green.png b/Assets/Textures/green.png new file mode 100644 index 0000000000000000000000000000000000000000..5cbf47de466aa09576eabb1964139d537d4a06e7 GIT binary patch literal 5063 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 JtSRN1 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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 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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 U!4vWf8vpt<8 literal 0 HcmV?d00001 diff --git a/Assets/Textures/icon.svg b/Assets/Textures/icon.svg new file mode 100644 index 0000000..b370ceb --- /dev/null +++ b/Assets/Textures/icon.svg @@ -0,0 +1 @@ + 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 zcmV;K0%rY*P)P000#T1^@s6vnxdy0004QX+uL$X=7sm z04R}lk;_X0Q5431T2YiCQBXvX3yT&CVGu3L7H%ZO46@qj_zHXsGfGI?piK**MbxI( zqW_?_LEC~LD1wM~?R#xPrgK$LqV90#{P^zu4rjgrdoZiz%=THx<%>o*;CC%YS6rR1 zbTdjHJ_ci&sn3N%LH=D|_t;du^QvC|-}`g*B$B2Ewl3jmO*e|dG7Z6vqON#HctFd< z62eEq9zzBczE*m?&M%77b^cInM8fl6S3ODmN9a|6TegAcJd;Xe~K3?pR5Ftmi&BuOY}u*rjyFtseemck4T4I%l2T9%;u z0+cO4VtA7P000#T1^@s6vnxdy0004QX+uL$X=7sm z04R}lk;_X0Q5431T2YiCQBXvX3yT&CVGu3L7H%ZO46@qj_zHXsGfGI?piK**MbxI( zqW_?_LEC~LD1wM~?R#xPrgK$LqV90#{P^zu4rjgrdoZiz%=THx<%>o*;CC%YS6rR1 zbTdjHJ_ci&sn3N%LH=D|_t;du^QvC|-}`g*B$B2Ewl3jmO*e|dG7Z6vqON#HctFd< z62eEq9zzBczE*m?&M%77b^cInM8fl6S3ODmN9a|6T7{2>@6z7Sm^p zYl}KAi3UgakNZiW=gXWxBJHx23p(J`#WlR>K+iph(bio_D0o1U=t!~!E%wu{9t0Ry zYso+9LE;f0F8^c=gtLecsJ7~qNV1h^#k^VrjP000#T1^@s6vnxdy0004QX+uL$X=7sm z04R}lk;_X0Q5431T2YiCQBXvX3yT&CVGu3L7H%ZO46@qj_zHXsGfGI?piK**MbxI( zqW_?_LEC~LD1wM~?R#xPrgK$LqV90#{P^zu4rjgrdoZiz%=THx<%>o*;CC%YS6rR1 zbTdjHJ_ci&sn3N%LH=D|_t;du^QvC|-}`g*B$B2Ewl3jmO*e|dG7Z6vqON#HctFd< z62eEq9zzBczE*m?&M%77b^cInM8fl6S3ODmN9a|6TP000#T1^@s6vnxdy0004QX+uL$X=7sm z04R}lk;_X0Q5431T2YiCQBXvX3yT&CVGu3L7H%ZO46@qj_zHXsGfGI?piK**MbxI( zqW_?_LEC~LD1wM~?R#xPrgK$LqV90#{P^zu4rjgrdoZiz%=THx<%>o*;CC%YS6rR1 zbTdjHJ_ci&sn3N%LH=D|_t;du^QvC|-}`g*B$B2Ewl3jmO*e|dG7Z6vqON#HctFd< z62eEq9zzBczE*m?&M%77b^cInM8fl6S3ODmN9a|6Tls5 zenWG{Yp^M%C@!+Jlxy!OB{b)n`+lQ8t!toP!**|qq{6H^6f25#0svNw#q=5D+M-UD zM1#HiAx42Ni+GQyhw8Ke@Yj~>zHTNJ!TR$bC;2)BBN0Kclu}8aV5MW%bCI6%b zNsa(<`6qWEoOy&mwNu-wlV1U0oyf>+o$ef0>2z~viC4wG3 idx_6hvd$&>|sLkkz86r-9mWcM{PWv@`?_QA@vu z{)1YB)`B1?f{3>Eek~!_^QxePy~lgchwuA-AD;UjxTATkV6{#{p=g`&nMhzUu@q>3 z!@~eRdI%;p%b1GAqWrtQA8@I9A6C8ozt?nirZbiXt`6aG%`k0YnTF`PZ7ALm?$&b2 zwD7TT$dmzvZu1E(5T%b5k?Vd23-zNFRWQD5TC6c^^C z_Q~$YBF+pE0;DLhN*LAvF=}!oF=|R->qwdN8sOri|e|U z+K0<+=zTJhX0jr+$ad>Gyq|+F0bO_CS*~VPJLl{X<~QXR-NL~k49R`}$}cFuXdH-f z8c+ZL010qNS#tmYE+YT{E+YYWr9XB600B@*L_t(|0qvU04Z<)G1&PHSYJd``ii)U; z5}*dC0OUx|%1=%dWe<6pTnsi^vSUWO5pE8Z>vlT-D$Ap#=l9c$CYgYM5rN4ccvqCi z>%A!5`}I;jhd2cVFU$z^gjplXkO$%niSXWuz(|;-6=e>B#G%^Ekz##M1d1@KE?Wtc zAxN4%0pVUDP$SR^6Cq3OOId@!9tq?EkaXi)Ru;u%gn%1?B8*#NPp#VQ9zPwv~LM2+)#6ktMDr0fe#KR+5S$fG|;HiEBv!VJx?mq@oD4!tjrL6kg)G z5lEc%a@$h!i6lTv7D<=bb_9wrv}JaCOF{tzIISE2m5{y!j!G>*%WQc}Miq-^BoStG zAW$kyPNpl&+T$`3CC5XSOo7XZKu;JYwniL85j{p{0+Yfh;jTEEtBq8Y8XeXg2>bzU WU`cm=N*US!0000x_6hvd$&>|sLkkz86r-9mWcM{PWv@`?_QA@vu z{)1YB)`B1?f{3>Eek~!_^QxePy~lgchwuA-AD;UjxTATkV6{#{p=g`&nMhzUu@q>3 z!@~eRdI%;p%b1GAqWrtQA8@I9A6C8ozt?nirZbiXt`6aG%`k0YnTF`PZ7ALm?$&b2 zwD7TT$dmzvZu1E(5T%b5k?Vd23-zNFRWQD5TC6c^^C z_Q~$YBF+pE0;DLhN*LAvF=}!oF=|R->qwdN8sOri|e|U z+K0<+=zTJhX0jr+$ad>Gyq|+F0bO_CS*~VPJLl{X<~QXR-NL~k49R`}$}cFuXdH-f z8c+ZL010qNS#tmYE+YT{E+YYWr9XB6000(AL_t&t9b;T(W%r)}3YcIF5RJkC08KXn UBfDhHvH$=807*qoM6N<$g1|P{B>(^b 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 zcmV?P))=vEY6Yt|VT0@c|;wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W)97HMy|IS=o>@8RSPXmQ&tc#Y#wDEe+V@;Sny175|FlH1;9-c14REKzIYrE-RX` z3+J2A{othC^sm$)TeB>9J%x@GblyPgVmYh7b58Cdxh}ux8us>~U+#yOegN9HXZQm( zmWKcU010qNS#tmYE+YT{E+YYWr9XB600AFKL_t(Y4ds^I4FVw$gw@!K6dvIqMM+>^Y3%g%hez$Kne|2EES_;J5|xR&$t_1kk%T8(kh zf?5nFo{^^UVreiwqnR!b|pdW+U=M|ttk2pU8L`002ovPDHLkV1j=@SjqqZ 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 zcmV)=vEY6Yt|VT0@c|;wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W)97HMy|IS=o>@8RSPXmQ&tc#Y#wDEe+V@;Sny175|FlH1;9-c14REKzIYrE-RX` z3+J2A{othC^sm$)TeB>9J%x@GblyPgVmYh7b58Cdxh}ux8us>~U+#yOegN9HXZQm( zmWKcU010qNS#tmYE+YT{E+YYWr9XB600AvYL_t(Y4ds);5yCJG1c6qli882$GN_4K zU=HRoin)uVBp(KUl*rPqWy0a`Z|lf`AGgbs&*$rX$}_h$j{K7X#v--9M^1_X-cznv zR=k&7Nx`1P?ss*KXkN4EnZ$rFIRe+pm-^(_>l)m_#)INrF=D?IyG9BkfVmhmDQag| z9h(8q1hKyRY$uMO$^@uab;zp$N@53%z>XBWvUo|}mA1uBj{LadZH#+(Z%s^qn~?jN z6m|BiCZroHQZU;SXVU^&k+;MZDa2TrynNM8>IAO-bFAW3J4lqe8aI7<)e0DeoB&bP zw#5$OK*)2s-gsa+aix(G7c<68?1}-8r**P1?|5Ln#jb#$HB$B}HhAgZX^Rwc*KfsW na7~=18Wrd3s#Q@{@Dp_}wc4JZzXzi*00000NkvXXu0mjfU5a0} 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 zcmV-{0)G98P))=vEY6Yt|VT0@c|;wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W)97HMy|IS=o>@8RSPXmQ&tc#Y#wDEe+V@;Sny175|FlH1;9-c14REKzIYrE-RX` z3+J2A{othC^sm$)TeB>9J%x@GblyPgVmYh7b58Cdxh}ux8us>~U+#yOegN9HXZQm( zmWKcU010qNS#tmYE+YT{E+YYWr9XB6006m3L_t(Y4egf85r7~JM8#I@$TBR*GVI7& zbfU8vtv@DU5z^>VD`7Un4Oc8;~(!gVvp9gHIouRUt 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 zcmV-W0)=vEY6Yt|VT0@c|;wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W)97HMy|IS=o>@8RSPXmQ&tc#Y#wDEe+V@;Sny175|FlH1;9-c14REKzIYrE-RX` z3+J2A{othC^sm$)TeB>9J%x@GblyPgVmYh7b58Cdxh}ux8us>~U+#yOegN9HXZQm( zmWKcU010qNS#tmYE+YT{E+YYWr9XB6004+dL_t(Y4egUb4uBvG1kv~tpX1qAdiFWI z1>>O?V%nkMVzOKsLfP4FpcE}7palM&z>*o@tat10UHdVlwe)=vEY6Yt|VT0@c|;wrc}2o9o) zUxWWZSHV?55EMbg&E2m>B%W)97HMy|IS=o>@8RSPXmQ&tc#Y#wDEe+V@;Sny175|FlH1;9-c14REKzIYrE-RX` z3+J2A{othC^sm$)TeB>9J%x@GblyPgVmYh7b58Cdxh}ux8us>~U+#yOegN9HXZQm( zmWKcU010qNS#tmYE+YT{E+YYWr9XB6008buL_t(Y4aJth4#OY}L&voL|7EsZD!0Rq z161Xdg5wvX9%#My*Awgg1T>hRS#WFZxT@c+wW`llVuS|p`t1xc1$K-xO&QG6v3)i` z8O)5T`z3IeDm%yFY;eUC0j##c%wTrk0$0+yS_?dzO7*2+HvvMNo)nCRJL}uPS!xN+ znpbW>f>(^AR}D_Vs%dqg=%?Tv=E~!CFuS=Sn2A+_>e&!nHOcg&Ab)SJkqC|1`zq^0 zkElzD88nRIOr3`Y*9okqc1@Y?>U{#^L|8L3)L`xCQ?O%#P`8%g6=>EQKZHBvR-H_| cm2@%t0-xJKPiAQxfdBvi07*qoM6N<$g4&Eh1poj5 literal 0 HcmV?d00001 diff --git a/Assets/Textures/minimap_player.png.import b/Assets/Textures/minimap_player.png.import new file mode 100644 index 0000000..00ab613 --- /dev/null +++ b/Assets/Textures/minimap_player.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c60fh34ttgcvh" +path="res://.godot/imported/minimap_player.png-426894f528256139caec57f6a1ca6198.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/minimap_player.png" +dest_files=["res://.godot/imported/minimap_player.png-426894f528256139caec57f6a1ca6198.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_tree.png b/Assets/Textures/minimap_tree.png new file mode 100644 index 0000000000000000000000000000000000000000..6449acd3dcb3decaa5d54966f13396068f765803 GIT binary patch literal 926 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�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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/oohyeahwooyeah.png.import b/Assets/Textures/oohyeahwooyeah.png.import new file mode 100644 index 0000000..e714d78 --- /dev/null +++ b/Assets/Textures/oohyeahwooyeah.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://7quxr23mnj5w" +path.s3tc="res://.godot/imported/oohyeahwooyeah.png-20c3434d935c3783442ae98aba45f770.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/oohyeahwooyeah.png" +dest_files=["res://.godot/imported/oohyeahwooyeah.png-20c3434d935c3783442ae98aba45f770.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/radial.png b/Assets/Textures/radial.png new file mode 100644 index 0000000000000000000000000000000000000000..b35676bd1be91b61beab6ac832d3717432a02914 GIT binary patch literal 5900 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%0AAFkvG7=abIX>0&&NDn}3JE|UA72mB z8t1vlcSO_h-g;pHNWdTr%lFnCuaMc}*6w4?E&*1N0xi9cVPX2&>}$RI9z1GT{1lEB zWx?vXp9Du88Xos80jU$v0&G1)F-Nx+JZeb^z(fYcJ&z&o=*GLhwf_6x;jKV^zV#Y# zeDt0HwsuhG&CE@m01Mt4)5T@40mWceE{=(c>lUCv`Pl1cR*`$g7*KLW1xY;jVF7@P z07hcC2z`&8^LEdZpy%V-o6m8$4+*fK^aoF0BdHaS@t)>EXbJkdC%2Am{toa!7+4Z= zycZ|&k-itw6X&hv3SbyX(1Nn&wBjXaq>qT`g~z(401E`cQ5c>dorg7AttBA?kF{0; zxOfC*0Cb+re5~s=7LkQV{*?f4(aiWv38)7m_P`^@Q~_835=Nf@(f3m8@CtURIL h0kalAL*Cm9_yeA@6BS)i&M5!@002ovPDHLkV1ngNu$lk> 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 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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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 Xw=O9P(%ZQ3$VC{o&Nc;Btf+qgC|$@C 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 zcmV+d1pWJoP)o*;CC%YS6rR1 zbTdjHJ_ci&sn3N%LH=D|_t;du^QvC|-}`g*B$B2Ewl3jmO*e|dG7Z6vqON#HctFd< z62eEq9zzBczE*m?&M%77b^cInM8fl6S3ODmN9a|6TvlQ7H#Jior(@Y#cNQy6?027vg`5Q5%J%gX>*61LQs zT<#Q=0oc-{r+^Ki1c29+w|)!m+Uw~6EN1i+tO-ZGmJYxwTtl#cv-WQ5QUPq4&}LhK z?fusJw#Iv(2B1g06^z$(Tb}};$NW{Kh7jp>?b-gO13(LI#Ut+N01zUXQ$Ph^Nne|@ z0<-kC^r8Vk3AC7q)KCCqnMdpc2jCIaJN}Wx^;$Rpy}{_uPyn9vQDCBb!T>~tpn!P$ zzyNqRminKsPt!7MovE2Bf&s|-Bc{^7ME8XO(84mFqvl29v;Yw1rvSh_|5E@Ek@`ZV zFMXj$04Yqwt)-9N0}4Py&vs1(0G+;s1qZ+o$($-U0F+pL{#js$1%Lv1)Q18fnpRf& z0*3<9e#Aiwf8~^|S07*qoM6N<$g1vIrbN~PV 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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%0A5hQj~_1wAK@EpyaCmT0bAIz&H zFopsB&An9b$r;HH>kB?wIRumO$~J7v*Q*^jyqb$YQTt;40JTN3FN0QVjZ)1qLF-!C zC-%P!)J%{P>+z8;cy~)4%K_V44z#Ulox485CrAw~e;Wo~$RyzDew1XR*k%7~X|vB0 zuBOSn$~c0#b)OFzG@Qu7I7%mffBxd``-&_9ERiD^+l8mRZudsNNJYShmw zey?QzM}TYXw>VM7_wu`cu7PcRpy>KM>=Dzu+5LO@f)TIPfz?)5&ruY~xKd#{^=!;j zfakN_EjOlIwiz(8Pi}PVF5iiUz!+c%IyBZ7?#MCCl4h}gv?>b*{J_lhzR7}IeXw*^ zh3CQ1Y^GXY-L!V`&!fZ84^iIy_W$r6P8AapduTq&37qq-yZcW#&k1{#GB5d%PaBxT zVD?5Br`D#tzf^%`+rRUr=-o%qD?Q7qDVZ1bI4S!1^XJlXJW^TVKylsTmb=<@#ZkBv zX}3s4|5ldDJRRem!`ZG@Z=m{8-EIhjjC9$eiFL>JL^`g2aDRczDr0qpX`6=L_#&JV zy}=3J72FRD^PeNZki0O&X-Qtxfqa`2s%AmrJ?mSVOsr{;TDDiC25$9P$@<>P-ox{E z>W=40$)t| zXHjlh5wApoEPK$r3NU~0qf7gbJ7zdRA!jf4nUor%z)?yWX0+({RPYZGt5W5xaZNYGrMSC>hSov-}gt4-F@gUuwlxI6==q_(R8K_*qIz16i8i&rt9H;F^@(6dzlmlyjGJ1dvE9nn zxkJ9enuv<=pD)I|0fq8a`=VGru=?o3o+$G`?v6<5Q&k~257SI%81MYW$kn&vFC1_% z@PlvFuem((^+)v7l-Iq(ydHBBIQB0Sj#I2MgT=#k$&v1LX~`wf(7SfA2+Q%M(q<|~ z7ox|HcdPh|@{iYb>h}`ut?xY&q4$Eh3m@wCn>Ai|BYGV`D9 z#@Y@J%pS-b>N~Y4kSxTIiIwSPRqcE39aH8*fywU-GjRNTvR-vQE{JFg^YxI1G4JsG z^=mD=VdRGQAM5nao22-S^uUlG?*xFkFo3UCg~o&fN70l@&rG!syBh|_^^i0YhCaQ8 zKw9#bx7trI$3lF_et$dv4Bt)PCyZK6H6{vf@KHdnv}Z$b2z#q(XSGmpp>(pf^=|*a zSoZvSOF#f8FOMz=Kz+69QWS!g86LGLTD`7qO z#M|>oY$sX<_CS)s&-O)G;vuiYzQQ~0?i%tLzEwY6j-z`EG2An9&?W8cG)X9Or@HTjO;`60}fhXuqTP?OgxonI$m#O6#x=M zD>u|m;A1vAZLbT1u~Dk;-nVZ)YS}#*TkTx{PFn7VdeF}Kt)~XQzMFzw(s8 z-J7f$xl+1v>5mwU5lWI`W{zY)9k3eL?Qh-`&^sjbpM<}y$70tImx~ohPrrsY^|Np5 z2rn($s?yqbq62N>CN*4<5L*8sAl;;_u!V{tNPL z*4cOeu0)7jzfw0vXbtm^F>x`rKr#c$d3YW%BdiC2e5!c^S-YS1R!*JP6qw<%j+|DB zjDe3BUe0u+MmerdI+L~HQ{JB)jB`AmJ@>)?Z_>Xl4)ngYkhTj)CPC_;6burJeO_gN zV0Ja?K|bdrT#}>=tg^5z>;|-c#AowZumVIhoKY5U-Incg-7i zH{es}I|+|uW^_BX+gARIC402_(v?t9sN^Gb0!d+ZxZ7D)nm59!UtKkY2X3>dXR^PX z-tiiK6kl3;7z4)e8$(5s`s62vI7nts!vVOYerXNeaMsg-?%TJ&(y^PPx^*dU@3~j@ zu77ZY7C=qicyn#?61B5?bF*5*;eX3ufRPuMo8^7&7L7sMn}1>Em1= zc4>R%*N-2<4-09pg!`pLoA^;eui(;fs7x<1M^$B>~ z)*x=ykxB8N z;6t##BSI<{i}uMfWN!+F|2iGx1ATWq+j*>UgCh{FXXS$U!$TDU1cIsqU=@@eFr(tY zUolK^qP|1_0DF!I9JR5r%E@FZgljt9u)X`h*9R-U_g!KSvvp;#blK&|QM

iBCYw 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 QZ1oWN@Nvr`;)U@40QY^3H~;_u 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 zcmV-z1(N!SP)aTcy%gI_Myx5TuGj3!)&7T8A!0O08hkC3#I+AxXnaiWFDD#i8IJ zy7)EtALuH$DhPrih`71?wMdEgHH8*w-{a-}IC9vHX>LhD{u&G$He0&?5*i|&BKBVdB=M>qZe0k~)i zclhP$00009a7bBm001r{001r{0eGc9b^rhaqe(sG&sCK6o;%9p| z4I-0Aj3GW|#P*M9F<$q;xZ40$jJYT?rR+1qO08qE55##BfEDHmpW#B~>d5usw+M+CO-53BR@BV(r>xtR~d0Ru3y2}y;wGbC*L_As5#)7yV59!D}h zR!ajgLX}L#xyfo|T(Jf-EN<4i7W`aGPrfVUb zpD}LV|Lv3M=mJQ5%7yS1uWO^a>7MinRA#c^1eHEJI1sXn9tDq}~)E8cu&I!G(y zrt75u6eH>zV1}bcoGW<8C?47X6cT1osdckxG+xGy@GE<504gandNc%8-*Cu7r(Xtu zijjz$tj-+s)5bD@6|*^nyk6m))F3_dBAs*e{{TepL~&GcvF5D#_8V|kBT;wq0%!o$ zwTWWSJ|BGoJDbe`Pu|*2AM^%fk(~x}^QMLNvWFvU#xDnOL|m<9Ce`{C+>Z)ir2$r> z-q@E7fCZEHPYHm%9k!oM?_8e}fHjbt&Fh^_R$Qn38AKseMjv%{+6{PALsQq z`mj$R8aV6wj<aZ)!)+Z%Y1bFSHAi|#AX8RI}ARg5st9 z1QZf)VuJOWBjXOeD~I+}Y40$ixwu8`@FWFL37Mtu4xsbnF)6;<093JwsAH$&)QjCX$e?FzdhFR!ib;(L-UaUjo-%>IkYVOyapJqf00000NkvXXu0mjf6;_J9 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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 Cp?jeK 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/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