From 417044bfda9714975d3ae9cdb18c3ecfa43f839d Mon Sep 17 00:00:00 2001 From: Nathan Anderson Date: Thu, 4 Aug 2022 10:50:28 -0600 Subject: [PATCH] Added all the things --- .gitignore | 11 ++ 10-pixel-art-square-mike-taylor.jpg | Bin 0 -> 43531 bytes 10-pixel-art-square-mike-taylor.jpg.import | 35 ++++ default_env.tres | 7 + icon.png | Bin 0 -> 3305 bytes icon.png.import | 35 ++++ project.godot | 59 +++++++ scenes/house.tscn | 44 +++++ scenes/neighbor.tscn | 63 ++++++++ scenes/player.tscn | 50 ++++++ scenes/stage.tscn | 180 +++++++++++++++++++++ scenes/tree.tscn | 9 ++ scenes/trolley.tscn | 36 +++++ scripts/house.gd | 6 + scripts/neighbor.gd | 127 +++++++++++++++ scripts/player.gd | 63 ++++++++ scripts/stage.gd | 2 + scripts/trolley.gd | 33 ++++ 18 files changed, 760 insertions(+) create mode 100644 .gitignore create mode 100644 10-pixel-art-square-mike-taylor.jpg create mode 100644 10-pixel-art-square-mike-taylor.jpg.import create mode 100644 default_env.tres create mode 100644 icon.png create mode 100644 icon.png.import create mode 100644 project.godot create mode 100644 scenes/house.tscn create mode 100644 scenes/neighbor.tscn create mode 100644 scenes/player.tscn create mode 100644 scenes/stage.tscn create mode 100644 scenes/tree.tscn create mode 100644 scenes/trolley.tscn create mode 100644 scripts/house.gd create mode 100644 scripts/neighbor.gd create mode 100644 scripts/player.gd create mode 100644 scripts/stage.gd create mode 100644 scripts/trolley.gd diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4f48ad7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +# Godot-specific ignores +.import/ +export.cfg +export_presets.cfg + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ diff --git a/10-pixel-art-square-mike-taylor.jpg b/10-pixel-art-square-mike-taylor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4fc5bfbe41fffa038e13da35dc3c1bf1cb2b4b85 GIT binary patch literal 43531 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 OBSy;z)G~tq|4jhykBQ^} literal 0 HcmV?d00001 diff --git a/10-pixel-art-square-mike-taylor.jpg.import b/10-pixel-art-square-mike-taylor.jpg.import new file mode 100644 index 0000000..4d4999f --- /dev/null +++ b/10-pixel-art-square-mike-taylor.jpg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/10-pixel-art-square-mike-taylor.jpg-885b8df56355b977dcb318a4e8ff3a07.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://10-pixel-art-square-mike-taylor.jpg" +dest_files=[ "res://.import/10-pixel-art-square-mike-taylor.jpg-885b8df56355b977dcb318a4e8ff3a07.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/default_env.tres b/default_env.tres new file mode 100644 index 0000000..20207a4 --- /dev/null +++ b/default_env.tres @@ -0,0 +1,7 @@ +[gd_resource type="Environment" load_steps=2 format=2] + +[sub_resource type="ProceduralSky" id=1] + +[resource] +background_mode = 2 +background_sky = SubResource( 1 ) diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c98fbb601c83c81ec8c22b1dba7d1d57c62b323c GIT binary patch literal 3305 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 A2mk;8 literal 0 HcmV?d00001 diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..a4c02e6 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..4ac6389 --- /dev/null +++ b/project.godot @@ -0,0 +1,59 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=4 + +_global_script_classes=[ { +"base": "KinematicBody2D", +"class": "Neighbor", +"language": "GDScript", +"path": "res://scripts/neighbor.gd" +}, { +"base": "KinematicBody2D", +"class": "Player", +"language": "GDScript", +"path": "res://scripts/player.gd" +}, { +"base": "KinematicBody2D", +"class": "Trolley", +"language": "GDScript", +"path": "res://scripts/trolley.gd" +} ] +_global_script_class_icons={ +"Neighbor": "", +"Player": "", +"Trolley": "" +} + +[application] + +config/name="roger" +run/main_scene="res://scenes/stage.tscn" +config/icon="res://icon.png" + +[display] + +window/size/width=1280 +window/size/height=960 + +[layer_names] + +2d_physics/layer_1="player" +2d_physics/layer_2="npc" +2d_physics/layer_3="obstacle" + +[physics] + +common/enable_pause_aware_picking=true + +[rendering] + +quality/driver/driver_name="GLES2" +vram_compression/import_etc=true +vram_compression/import_etc2=false +environment/default_environment="res://default_env.tres" diff --git a/scenes/house.tscn b/scenes/house.tscn new file mode 100644 index 0000000..e0bd038 --- /dev/null +++ b/scenes/house.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=6 format=2] + +[ext_resource path="res://scripts/house.gd" type="Script" id=1] +[ext_resource path="res://roger-roger/chadHouse.png" type="Texture" id=2] + +[sub_resource type="CapsuleShape2D" id=3] +radius = 12.2857 +height = 2.57142 + +[sub_resource type="RectangleShape2D" id=4] +extents = Vector2( 86, 63.5 ) + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 3.5, 2 ) + +[node name="House" type="Node2D"] +script = ExtResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -125 ) +scale = Vector2( 5, 5 ) +texture = ExtResource( 2 ) + +[node name="HouseBody" type="StaticBody2D" parent="."] +collision_layer = 4 +collision_mask = 7 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="HouseBody"] +position = Vector2( -7, -90 ) +scale = Vector2( 7, 7 ) +shape = SubResource( 3 ) + +[node name="CollisionShape2D2" type="CollisionShape2D" parent="HouseBody"] +position = Vector2( -6, -49.5 ) +shape = SubResource( 4 ) + +[node name="DoorBody" type="StaticBody2D" parent="."] +scale = Vector2( 7, 7 ) +collision_layer = 4 +collision_mask = 2 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="DoorBody"] +position = Vector2( -0.857143, 1.57143 ) +shape = SubResource( 2 ) diff --git a/scenes/neighbor.tscn b/scenes/neighbor.tscn new file mode 100644 index 0000000..463a1a1 --- /dev/null +++ b/scenes/neighbor.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=14 format=2] + +[ext_resource path="res://roger-roger/runningSprites/aberlin/AberlinFinal.png" type="Texture" id=1] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin2.png" type="Texture" id=2] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin5.png" type="Texture" id=3] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin6.png" type="Texture" id=4] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin4.png" type="Texture" id=5] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin3.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/runningSprites/aberlin/Aberlin1.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/runningSprites/aberlin/AberlinStart.png" type="Texture" id=8] +[ext_resource path="res://roger-roger/LadyAberlin.png" type="Texture" id=9] +[ext_resource path="res://scripts/neighbor.gd" type="Script" id=10] + +[sub_resource type="CircleShape2D" id=3] +radius = 215.037 + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 9 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ ExtResource( 8 ), ExtResource( 7 ), ExtResource( 2 ), ExtResource( 6 ), ExtResource( 5 ), ExtResource( 3 ), ExtResource( 4 ), ExtResource( 1 ) ], +"loop": true, +"name": "run", +"speed": 8.0 +}, { +"frames": [ ExtResource( 7 ), ExtResource( 2 ), ExtResource( 9 ) ], +"loop": true, +"name": "walk", +"speed": 5.0 +} ] + +[sub_resource type="CapsuleShape2D" id=2] +radius = 12.0 +height = 10.0 + +[node name="Neighbor" type="KinematicBody2D"] +script = ExtResource( 10 ) + +[node name="RogerArea2D" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RogerArea2D"] +shape = SubResource( 3 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( 1, -29 ) +scale = Vector2( 5, 5 ) +frames = SubResource( 1 ) +animation = "walk" +frame = 2 +playing = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( -1, 0 ) +rotation = 1.5708 +shape = SubResource( 2 ) + +[node name="WanderTimer" type="Timer" parent="."] + +[connection signal="body_entered" from="RogerArea2D" to="." method="_on_RogerArea2D_body_entered"] +[connection signal="timeout" from="WanderTimer" to="." method="_on_WanderTimer_timeout"] diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 0000000..675a8e7 --- /dev/null +++ b/scenes/player.tscn @@ -0,0 +1,50 @@ +[gd_scene load_steps=13 format=2] + +[ext_resource path="res://roger-roger/runningSprites/Rogers5.png" type="Texture" id=1] +[ext_resource path="res://roger-roger/runningSprites/Rogers4.png" type="Texture" id=2] +[ext_resource path="res://roger-roger/runningSprites/Rogers6.png" type="Texture" id=3] +[ext_resource path="res://roger-roger/runningSprites/Rogers2.png" type="Texture" id=4] +[ext_resource path="res://roger-roger/runningSprites/Rogers3.png" type="Texture" id=5] +[ext_resource path="res://roger-roger/runningSprites/RogersFinal.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/runningSprites/Rogers1.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/runningSprites/RogersStart.png" type="Texture" id=8] +[ext_resource path="res://scripts/player.gd" type="Script" id=9] +[ext_resource path="res://roger-roger/mrRogers.png" type="Texture" id=10] + +[sub_resource type="CapsuleShape2D" id=2] +radius = 13.0 +height = 10.0001 + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 10 ) ], +"loop": true, +"name": "idle", +"speed": 5.0 +}, { +"frames": [ ExtResource( 8 ), ExtResource( 7 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 2 ), ExtResource( 1 ), ExtResource( 3 ), ExtResource( 6 ) ], +"loop": true, +"name": "run", +"speed": 8.0 +} ] + +[node name="Player" type="KinematicBody2D"] +collision_mask = 7 +script = ExtResource( 9 ) +ACCELERATION = 2000 +FRICTION = 2500 + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( 0, 4 ) +rotation = 1.5708 +shape = SubResource( 2 ) + +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] +position = Vector2( 2, -25 ) +scale = Vector2( 5, 5 ) +frames = SubResource( 1 ) +animation = "idle" +playing = true + +[node name="Camera2D" type="Camera2D" parent="."] +current = true diff --git a/scenes/stage.tscn b/scenes/stage.tscn new file mode 100644 index 0000000..19e0611 --- /dev/null +++ b/scenes/stage.tscn @@ -0,0 +1,180 @@ +[gd_scene load_steps=16 format=2] + +[ext_resource path="res://scenes/player.tscn" type="PackedScene" id=1] +[ext_resource path="res://scripts/stage.gd" type="Script" id=2] +[ext_resource path="res://scenes/house.tscn" type="PackedScene" id=3] +[ext_resource path="res://scenes/trolley.tscn" type="PackedScene" id=4] +[ext_resource path="res://scenes/neighbor.tscn" type="PackedScene" id=5] +[ext_resource path="res://roger-roger/tilemap/streetSideTop.png" type="Texture" id=6] +[ext_resource path="res://roger-roger/tilemap/StreetVerticalLeft.png" type="Texture" id=7] +[ext_resource path="res://roger-roger/tilemap/streetSideBottom.png" type="Texture" id=8] +[ext_resource path="res://roger-roger/tilemap/sidewalk.png" type="Texture" id=9] +[ext_resource path="res://roger-roger/tilemap/StreetVerticalRight.png" type="Texture" id=10] +[ext_resource path="res://roger-roger/tilemap/grass1.png" type="Texture" id=11] +[ext_resource path="res://roger-roger/tilemap/justRoad.png" type="Texture" id=12] +[ext_resource path="res://scenes/tree.tscn" type="PackedScene" id=13] + +[sub_resource type="ConvexPolygonShape2D" id=3] +points = PoolVector2Array( 0, 0, 16, 0, 16, 16, 0, 16 ) + +[sub_resource type="TileSet" id=2] +0/name = "StreetVerticalRight.png 0" +0/texture = ExtResource( 10 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 16, 16 ) +0/tile_mode = 0 +0/occluder_offset = Vector2( 0, 0 ) +0/navigation_offset = Vector2( 0, 0 ) +0/shape_offset = Vector2( 0, 0 ) +0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +0/shape_one_way = false +0/shape_one_way_margin = 0.0 +0/shapes = [ ] +0/z_index = 0 +1/name = "StreetVerticalLeft.png 1" +1/texture = ExtResource( 7 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 0, 0, 16, 16 ) +1/tile_mode = 0 +1/occluder_offset = Vector2( 0, 0 ) +1/navigation_offset = Vector2( 0, 0 ) +1/shape_offset = Vector2( 0, 0 ) +1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +1/shape_one_way = false +1/shape_one_way_margin = 0.0 +1/shapes = [ ] +1/z_index = 0 +3/name = "sidewalk.png 3" +3/texture = ExtResource( 9 ) +3/tex_offset = Vector2( 0, 0 ) +3/modulate = Color( 1, 1, 1, 1 ) +3/region = Rect2( 0, 0, 16, 16 ) +3/tile_mode = 0 +3/occluder_offset = Vector2( 0, 0 ) +3/navigation_offset = Vector2( 0, 0 ) +3/shape_offset = Vector2( 0, 0 ) +3/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +3/shape_one_way = false +3/shape_one_way_margin = 0.0 +3/shapes = [ ] +3/z_index = 0 +5/name = "streetSideBottom.png 5" +5/texture = ExtResource( 8 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 0, 0, 16, 16 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shape_offset = Vector2( 0, 0 ) +5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +5/shape_one_way = false +5/shape_one_way_margin = 0.0 +5/shapes = [ ] +5/z_index = 0 +6/name = "streetSideTop.png 6" +6/texture = ExtResource( 6 ) +6/tex_offset = Vector2( 0, 0 ) +6/modulate = Color( 1, 1, 1, 1 ) +6/region = Rect2( 0, 0, 16, 16 ) +6/tile_mode = 0 +6/occluder_offset = Vector2( 0, 0 ) +6/navigation_offset = Vector2( 0, 0 ) +6/shape_offset = Vector2( 0, 0 ) +6/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +6/shape_one_way = false +6/shape_one_way_margin = 0.0 +6/shapes = [ ] +6/z_index = 0 +7/name = "grass1.png 7" +7/texture = ExtResource( 11 ) +7/tex_offset = Vector2( 0, 0 ) +7/modulate = Color( 1, 1, 1, 1 ) +7/region = Rect2( 0, 0, 16, 16 ) +7/tile_mode = 0 +7/occluder_offset = Vector2( 0, 0 ) +7/navigation_offset = Vector2( 0, 0 ) +7/shape_offset = Vector2( 0, 0 ) +7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +7/shape = SubResource( 3 ) +7/shape_one_way = false +7/shape_one_way_margin = 1.0 +7/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 3 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +7/z_index = 0 +8/name = "justRoad.png 8" +8/texture = ExtResource( 12 ) +8/tex_offset = Vector2( 0, 0 ) +8/modulate = Color( 1, 1, 1, 1 ) +8/region = Rect2( 0, 0, 16, 16 ) +8/tile_mode = 0 +8/occluder_offset = Vector2( 0, 0 ) +8/navigation_offset = Vector2( 0, 0 ) +8/shape_offset = Vector2( 0, 0 ) +8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +8/shape_one_way = false +8/shape_one_way_margin = 0.0 +8/shapes = [ ] +8/z_index = 0 + +[node name="Stage" type="Node2D"] +script = ExtResource( 2 ) + +[node name="TileMap" type="TileMap" parent="."] +scale = Vector2( 5, 5 ) +tile_set = SubResource( 2 ) +cell_size = Vector2( 16, 16 ) +show_collision = true +format = 1 +tile_data = PoolIntArray( -13, 7, 0, -12, 7, 0, -11, 3, 0, -10, 1, 0, -9, 0, 0, -8, 3, 0, -7, 7, 0, -6, 7, 0, -5, 7, 0, -4, 7, 0, -3, 7, 0, -2, 7, 0, -1, 7, 0, -65536, 7, 0, -65535, 7, 0, -65534, 7, 0, -65533, 7, 0, -65532, 7, 0, -65531, 7, 0, -65530, 7, 0, -65529, 7, 0, -65528, 7, 0, -65527, 7, 0, -65526, 7, 0, -65525, 7, 0, -65524, 7, 0, -65523, 7, 0, -65522, 7, 0, -65521, 7, 0, -65520, 7, 0, -65519, 7, 0, -65518, 7, 0, -65517, 7, 0, -65516, 7, 0, -65515, 7, 0, -65514, 7, 0, -65513, 7, 0, -65512, 7, 0, -65511, 7, 0, -65510, 7, 0, 65523, 7, 0, 65524, 7, 0, 65525, 3, 0, 65526, 1, 0, 65527, 0, 0, 65528, 3, 0, 65529, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 0, 7, 0, 1, 7, 0, 2, 7, 0, 3, 7, 0, 4, 7, 0, 5, 3, 0, 6, 3, 0, 7, 8, 0, 8, 8, 0, 9, 3, 0, 10, 3, 0, 11, 3, 0, 12, 3, 0, 13, 3, 0, 14, 7, 0, 15, 7, 0, 16, 7, 0, 17, 7, 0, 18, 7, 0, 19, 7, 0, 20, 3, 0, 21, 3, 0, 22, 3, 0, 23, 3, 0, 24, 7, 0, 25, 7, 0, 26, 7, 0, 131059, 3, 0, 131060, 3, 0, 131061, 3, 0, 131062, 1, 0, 131063, 0, 0, 131064, 3, 0, 131065, 7, 0, 131066, 7, 0, 131067, 7, 0, 131068, 7, 0, 131069, 7, 0, 131070, 7, 0, 131071, 7, 0, 65536, 7, 0, 65537, 7, 0, 65538, 7, 0, 65539, 7, 0, 65540, 7, 0, 65541, 7, 0, 65542, 3, 0, 65543, 1, 0, 65544, 0, 0, 65545, 3, 0, 65546, 7, 0, 65547, 7, 0, 65548, 7, 0, 65549, 3, 0, 65550, 3, 0, 65551, 7, 0, 65552, 7, 0, 65553, 7, 0, 65554, 7, 0, 65555, 7, 0, 65556, 3, 0, 65557, 1, 0, 65558, 0, 0, 65559, 3, 0, 65560, 7, 0, 65561, 7, 0, 65562, 7, 0, 196595, 6, 0, 196596, 6, 0, 196597, 6, 0, 196598, 8, 0, 196599, 8, 0, 196600, 3, 0, 196601, 7, 0, 196602, 7, 0, 196603, 7, 0, 196604, 7, 0, 196605, 7, 0, 196606, 7, 0, 196607, 7, 0, 131072, 7, 0, 131073, 7, 0, 131074, 7, 0, 131075, 7, 0, 131076, 7, 0, 131077, 7, 0, 131078, 3, 0, 131079, 1, 0, 131080, 0, 0, 131081, 3, 0, 131082, 7, 0, 131083, 7, 0, 131084, 7, 0, 131085, 7, 0, 131086, 3, 0, 131087, 7, 0, 131088, 7, 0, 131089, 7, 0, 131090, 7, 0, 131091, 7, 0, 131092, 3, 0, 131093, 1, 0, 131094, 0, 0, 131095, 3, 0, 131096, 7, 0, 131097, 7, 0, 131098, 7, 0, 262131, 5, 0, 262132, 5, 0, 262133, 5, 0, 262134, 8, 0, 262135, 8, 0, 262136, 3, 0, 262137, 7, 0, 262138, 7, 0, 262139, 7, 0, 262140, 7, 0, 262141, 7, 0, 262142, 7, 0, 262143, 7, 0, 196608, 7, 0, 196609, 7, 0, 196610, 7, 0, 196611, 7, 0, 196612, 7, 0, 196613, 7, 0, 196614, 3, 0, 196615, 1, 0, 196616, 0, 0, 196617, 3, 0, 196618, 7, 0, 196619, 7, 0, 196620, 7, 0, 196621, 7, 0, 196622, 3, 0, 196623, 3, 0, 196624, 3, 0, 196625, 3, 0, 196626, 3, 0, 196627, 3, 0, 196628, 3, 0, 196629, 1, 0, 196630, 0, 0, 196631, 3, 0, 196632, 7, 0, 196633, 7, 0, 196634, 7, 0, 327667, 3, 0, 327668, 3, 0, 327669, 3, 0, 327670, 3, 0, 327671, 3, 0, 327672, 3, 0, 327673, 7, 0, 327674, 7, 0, 327675, 7, 0, 327676, 7, 0, 327677, 7, 0, 327678, 7, 0, 327679, 7, 0, 262144, 7, 0, 262145, 7, 0, 262146, 7, 0, 262147, 7, 0, 262148, 7, 0, 262149, 7, 0, 262150, 3, 0, 262151, 1, 0, 262152, 0, 0, 262153, 3, 0, 262154, 7, 0, 262155, 7, 0, 262156, 7, 0, 262157, 7, 0, 262158, 3, 0, 262159, 7, 0, 262160, 7, 0, 262161, 7, 0, 262162, 7, 0, 262163, 7, 0, 262164, 3, 0, 262165, 1, 0, 262166, 0, 0, 262167, 3, 0, 262168, 7, 0, 262169, 7, 0, 262170, 7, 0, 393203, 7, 0, 393204, 7, 0, 393205, 7, 0, 393206, 7, 0, 393207, 7, 0, 393208, 7, 0, 393209, 7, 0, 393210, 7, 0, 393211, 7, 0, 393212, 7, 0, 393213, 7, 0, 393214, 7, 0, 393215, 7, 0, 327680, 7, 0, 327681, 7, 0, 327682, 7, 0, 327683, 7, 0, 327684, 7, 0, 327685, 7, 0, 327686, 3, 0, 327687, 1, 0, 327688, 0, 0, 327689, 3, 0, 327690, 7, 0, 327691, 7, 0, 327692, 7, 0, 327693, 7, 0, 327694, 3, 0, 327695, 7, 0, 327696, 7, 0, 327697, 7, 0, 327698, 7, 0, 327699, 7, 0, 327700, 3, 0, 327701, 1, 0, 327702, 0, 0, 327703, 3, 0, 327704, 7, 0, 327705, 7, 0, 327706, 7, 0, 458739, 7, 0, 458740, 7, 0, 458741, 7, 0, 458742, 7, 0, 458743, 7, 0, 458744, 7, 0, 458745, 7, 0, 458746, 7, 0, 458747, 7, 0, 458748, 7, 0, 458749, 7, 0, 458750, 7, 0, 458751, 7, 0, 393216, 7, 0, 393217, 7, 0, 393218, 7, 0, 393219, 7, 0, 393220, 7, 0, 393221, 7, 0, 393222, 3, 0, 393223, 1, 0, 393224, 0, 0, 393225, 3, 0, 393226, 7, 0, 393227, 7, 0, 393228, 7, 0, 393229, 7, 0, 393230, 3, 0, 393231, 7, 0, 393232, 3, 0, 393233, 3, 0, 393234, 3, 0, 393235, 3, 0, 393236, 3, 0, 393237, 8, 0, 393238, 8, 0, 393239, 3, 0, 393240, 3, 0, 393241, 3, 0, 393242, 7, 0, 524275, 7, 0, 524276, 7, 0, 524277, 7, 0, 524278, 7, 0, 524279, 7, 0, 524280, 7, 0, 524281, 7, 0, 524282, 7, 0, 524283, 7, 0, 524284, 7, 0, 524285, 7, 0, 524286, 7, 0, 524287, 7, 0, 458752, 7, 0, 458753, 7, 0, 458754, 7, 0, 458755, 7, 0, 458756, 7, 0, 458757, 7, 0, 458758, 3, 0, 458759, 1, 0, 458760, 0, 0, 458761, 3, 0, 458762, 7, 0, 458763, 7, 0, 458764, 7, 0, 458765, 7, 0, 458766, 3, 0, 458767, 7, 0, 458768, 3, 0, 458769, 8, 0, 458770, 6, 0, 458771, 6, 0, 458772, 6, 0, 458773, 8, 0, 458774, 8, 0, 458775, 6, 0, 458776, 8, 0, 458777, 3, 0, 458778, 7, 0, 589811, 7, 0, 589812, 7, 0, 589813, 7, 0, 589814, 7, 0, 589815, 7, 0, 589816, 7, 0, 589817, 7, 0, 589818, 7, 0, 589819, 3, 0, 589820, 3, 0, 589821, 3, 0, 589822, 3, 0, 589823, 3, 0, 524288, 3, 0, 524289, 3, 0, 524290, 3, 0, 524291, 3, 0, 524292, 3, 0, 524293, 3, 0, 524294, 3, 0, 524295, 1, 0, 524296, 0, 0, 524297, 3, 0, 524298, 3, 0, 524299, 3, 0, 524300, 3, 0, 524301, 3, 0, 524302, 3, 0, 524303, 3, 0, 524304, 3, 0, 524305, 8, 0, 524306, 5, 0, 524307, 5, 0, 524308, 5, 0, 524309, 8, 0, 524310, 8, 0, 524311, 5, 0, 524312, 8, 0, 524313, 3, 0, 524314, 7, 0, 655347, 7, 0, 655348, 7, 0, 655349, 7, 0, 655350, 7, 0, 655351, 7, 0, 655352, 7, 0, 655353, 7, 0, 655354, 7, 0, 655355, 3, 0, 655356, 8, 0, 655357, 6, 0, 655358, 6, 0, 655359, 6, 0, 589824, 6, 0, 589825, 6, 0, 589826, 6, 0, 589827, 6, 0, 589828, 6, 0, 589829, 6, 0, 589830, 6, 0, 589831, 8, 0, 589832, 8, 0, 589833, 3, 0, 589834, 3, 0, 589835, 3, 0, 589836, 3, 0, 589837, 3, 0, 589838, 3, 0, 589839, 3, 0, 589840, 3, 0, 589841, 3, 0, 589842, 3, 0, 589843, 3, 0, 589844, 3, 0, 589845, 1, 0, 589846, 0, 0, 589847, 3, 0, 589848, 3, 0, 589849, 3, 0, 589850, 7, 0, 720883, 7, 0, 720884, 7, 0, 720885, 7, 0, 720886, 7, 0, 720887, 7, 0, 720888, 7, 0, 720889, 7, 0, 720890, 7, 0, 720891, 3, 0, 720892, 8, 0, 720893, 5, 0, 720894, 5, 0, 720895, 5, 0, 655360, 5, 0, 655361, 5, 0, 655362, 5, 0, 655363, 5, 0, 655364, 5, 0, 655365, 5, 0, 655366, 5, 0, 655367, 8, 0, 655368, 8, 0, 655369, 3, 0, 655370, 7, 0, 655371, 7, 0, 655372, 7, 0, 655373, 7, 0, 655374, 7, 0, 655375, 7, 0, 655376, 7, 0, 655377, 7, 0, 655378, 7, 0, 655379, 7, 0, 655380, 3, 0, 655381, 1, 0, 655382, 0, 0, 655383, 3, 0, 655384, 7, 0, 655385, 7, 0, 655386, 7, 0, 786419, 7, 0, 786420, 7, 0, 786421, 7, 0, 786422, 7, 0, 786423, 7, 0, 786424, 7, 0, 786425, 7, 0, 786426, 7, 0, 786427, 3, 0, 786428, 3, 0, 786429, 3, 0, 786430, 3, 0, 786431, 3, 0, 720896, 3, 0, 720897, 3, 0, 720898, 3, 0, 720899, 3, 0, 720900, 3, 0, 720901, 3, 0, 720902, 3, 0, 720903, 1, 0, 720904, 0, 0, 720905, 3, 0, 720906, 7, 0, 720907, 7, 0, 720908, 7, 0, 720909, 7, 0, 720910, 7, 0, 720911, 7, 0, 720912, 7, 0, 720913, 7, 0, 720914, 7, 0, 720915, 7, 0, 720916, 3, 0, 720917, 1, 0, 720918, 0, 0, 720919, 3, 0, 720920, 7, 0, 720921, 7, 0, 720922, 7, 0, 851955, 7, 0, 851956, 7, 0, 851957, 7, 0, 851958, 7, 0, 851959, 7, 0, 851960, 7, 0, 851961, 7, 0, 851962, 7, 0, 851963, 7, 0, 851964, 7, 0, 851965, 7, 0, 851966, 7, 0, 851967, 7, 0, 786432, 7, 0, 786433, 3, 0, 786434, 3, 0, 786435, 7, 0, 786436, 7, 0, 786437, 7, 0, 786438, 3, 0, 786439, 1, 0, 786440, 0, 0, 786441, 3, 0, 786442, 3, 0, 786443, 3, 0, 786444, 3, 0, 786445, 7, 0, 786446, 7, 0, 786447, 7, 0, 786448, 7, 0, 786449, 7, 0, 786450, 7, 0, 786451, 7, 0, 786452, 3, 0, 786453, 1, 0, 786454, 0, 0, 786455, 3, 0, 786456, 7, 0, 786457, 7, 0, 786458, 7, 0, 917491, 7, 0, 917492, 7, 0, 917493, 7, 0, 917494, 7, 0, 917495, 7, 0, 917496, 7, 0, 917497, 7, 0, 917498, 3, 0, 917499, 3, 0, 917500, 3, 0, 917501, 3, 0, 917502, 3, 0, 917503, 3, 0, 851968, 3, 0, 851969, 3, 0, 851970, 3, 0, 851971, 3, 0, 851972, 3, 0, 851973, 3, 0, 851974, 3, 0, 851975, 1, 0, 851976, 0, 0, 851977, 3, 0, 851978, 3, 0, 851979, 3, 0, 851980, 3, 0, 851981, 3, 0, 851982, 7, 0, 851983, 7, 0, 851984, 7, 0, 851985, 7, 0, 851986, 7, 0, 851987, 7, 0, 851988, 3, 0, 851989, 1, 0, 851990, 0, 0, 851991, 3, 0, 851992, 7, 0, 851993, 7, 0, 851994, 7, 0, 983027, 7, 0, 983028, 7, 0, 983029, 7, 0, 983030, 7, 0, 983031, 7, 0, 983032, 7, 0, 983033, 7, 0, 983034, 3, 0, 983035, 3, 0, 983036, 3, 0, 983037, 3, 0, 983038, 3, 0, 983039, 3, 0, 917504, 3, 0, 917505, 3, 0, 917506, 3, 0, 917507, 7, 0, 917508, 7, 0, 917509, 7, 0, 917510, 3, 0, 917511, 1, 0, 917512, 0, 0, 917513, 3, 0, 917514, 7, 0, 917515, 7, 0, 917516, 3, 0, 917517, 3, 0, 917518, 3, 0, 917519, 7, 0, 917520, 7, 0, 917521, 7, 0, 917522, 7, 0, 917523, 7, 0, 917524, 3, 0, 917525, 1, 0, 917526, 0, 0, 917527, 3, 0, 917528, 7, 0, 917529, 7, 0, 917530, 7, 0, 1048563, 7, 0, 1048564, 7, 0, 1048565, 7, 0, 1048566, 7, 0, 1048567, 7, 0, 1048568, 7, 0, 1048569, 7, 0, 1048570, 3, 0, 1048571, 8, 0, 1048572, 8, 0, 1048573, 3, 0, 1048574, 7, 0, 1048575, 7, 0, 983040, 7, 0, 983041, 3, 0, 983042, 3, 0, 983043, 7, 0, 983044, 7, 0, 983045, 7, 0, 983046, 3, 0, 983047, 1, 0, 983048, 0, 0, 983049, 3, 0, 983050, 7, 0, 983051, 7, 0, 983052, 7, 0, 983053, 3, 0, 983054, 3, 0, 983055, 3, 0, 983056, 7, 0, 983057, 7, 0, 983058, 7, 0, 983059, 7, 0, 983060, 3, 0, 983061, 1, 0, 983062, 0, 0, 983063, 3, 0, 983064, 7, 0, 983065, 7, 0, 983066, 7, 0, 1114099, 7, 0, 1114100, 7, 0, 1114101, 7, 0, 1114102, 7, 0, 1114103, 7, 0, 1114104, 7, 0, 1114105, 7, 0, 1114106, 3, 0, 1114107, 1, 0, 1114108, 0, 0, 1114109, 3, 0, 1114110, 7, 0, 1114111, 7, 0, 1048576, 7, 0, 1048577, 3, 0, 1048578, 3, 0, 1048579, 7, 0, 1048580, 7, 0, 1048581, 7, 0, 1048582, 3, 0, 1048583, 1, 0, 1048584, 0, 0, 1048585, 3, 0, 1048586, 7, 0, 1048587, 7, 0, 1048588, 7, 0, 1048589, 7, 0, 1048590, 3, 0, 1048591, 3, 0, 1048592, 3, 0, 1048593, 7, 0, 1048594, 7, 0, 1048595, 7, 0, 1048596, 3, 0, 1048597, 1, 0, 1048598, 0, 0, 1048599, 3, 0, 1048600, 7, 0, 1048601, 7, 0, 1048602, 7, 0, 1179635, 7, 0, 1179636, 7, 0, 1179637, 7, 0, 1179638, 7, 0, 1179639, 7, 0, 1179640, 7, 0, 1179641, 7, 0, 1179642, 3, 0, 1179643, 1, 0, 1179644, 0, 0, 1179645, 3, 0, 1179646, 7, 0, 1179647, 7, 0, 1114112, 7, 0, 1114113, 3, 0, 1114114, 3, 0, 1114115, 7, 0, 1114116, 7, 0, 1114117, 7, 0, 1114118, 3, 0, 1114119, 1, 0, 1114120, 0, 0, 1114121, 3, 0, 1114122, 7, 0, 1114123, 7, 0, 1114124, 7, 0, 1114125, 7, 0, 1114126, 7, 0, 1114127, 3, 0, 1114128, 3, 0, 1114129, 3, 0, 1114130, 7, 0, 1114131, 7, 0, 1114132, 3, 0, 1114133, 1, 0, 1114134, 0, 0, 1114135, 3, 0, 1114136, 7, 0, 1114137, 7, 0, 1114138, 7, 0, 1245171, 7, 0, 1245172, 7, 0, 1245173, 7, 0, 1245174, 7, 0, 1245175, 7, 0, 1245176, 7, 0, 1245177, 7, 0, 1245178, 3, 0, 1245179, 1, 0, 1245180, 0, 0, 1245181, 3, 0, 1245182, 7, 0, 1245183, 7, 0, 1179648, 7, 0, 1179649, 7, 0, 1179650, 7, 0, 1179651, 7, 0, 1179652, 7, 0, 1179653, 7, 0, 1179654, 3, 0, 1179655, 1, 0, 1179656, 0, 0, 1179657, 3, 0, 1179658, 7, 0, 1179659, 7, 0, 1179660, 7, 0, 1179661, 7, 0, 1179662, 7, 0, 1179663, 7, 0, 1179664, 3, 0, 1179665, 3, 0, 1179666, 3, 0, 1179667, 7, 0, 1179668, 3, 0, 1179669, 1, 0, 1179670, 0, 0, 1179671, 3, 0, 1179672, 7, 0, 1179673, 7, 0, 1179674, 7, 0, 1310707, 3, 0, 1310708, 3, 0, 1310709, 3, 0, 1310710, 3, 0, 1310711, 7, 0, 1310712, 7, 0, 1310713, 7, 0, 1310714, 3, 0, 1310715, 1, 0, 1310716, 0, 0, 1310717, 3, 0, 1310718, 3, 0, 1310719, 3, 0, 1245184, 3, 0, 1245185, 3, 0, 1245186, 3, 0, 1245187, 3, 0, 1245188, 3, 0, 1245189, 3, 0, 1245190, 3, 0, 1245191, 1, 0, 1245192, 0, 0, 1245193, 3, 0, 1245194, 3, 0, 1245195, 3, 0, 1245196, 3, 0, 1245197, 3, 0, 1245198, 3, 0, 1245199, 3, 0, 1245200, 3, 0, 1245201, 3, 0, 1245202, 3, 0, 1245203, 3, 0, 1245204, 3, 0, 1245205, 1, 0, 1245206, 0, 0, 1245207, 3, 0, 1245208, 7, 0, 1245209, 7, 0, 1245210, 7, 0, 1376243, 6, 0, 1376244, 6, 0, 1376245, 8, 0, 1376246, 3, 0, 1376247, 7, 0, 1376248, 7, 0, 1376249, 7, 0, 1376250, 3, 0, 1376251, 8, 0, 1376252, 8, 0, 1376253, 6, 0, 1376254, 6, 0, 1376255, 6, 0, 1310720, 6, 0, 1310721, 6, 0, 1310722, 6, 0, 1310723, 6, 0, 1310724, 6, 0, 1310725, 6, 0, 1310726, 6, 0, 1310727, 8, 0, 1310728, 8, 0, 1310729, 6, 0, 1310730, 6, 0, 1310731, 6, 0, 1310732, 6, 0, 1310733, 6, 0, 1310734, 6, 0, 1310735, 6, 0, 1310736, 6, 0, 1310737, 6, 0, 1310738, 6, 0, 1310739, 6, 0, 1310740, 6, 0, 1310741, 8, 0, 1310742, 8, 0, 1310743, 3, 0, 1310744, 7, 0, 1310745, 7, 0, 1310746, 7, 0, 1441779, 5, 0, 1441780, 5, 0, 1441781, 8, 0, 1441782, 3, 0, 1441783, 7, 0, 1441784, 7, 0, 1441785, 7, 0, 1441786, 3, 0, 1441787, 8, 0, 1441788, 8, 0, 1441789, 5, 0, 1441790, 5, 0, 1441791, 5, 0, 1376256, 5, 0, 1376257, 5, 0, 1376258, 5, 0, 1376259, 5, 0, 1376260, 5, 0, 1376261, 5, 0, 1376262, 5, 0, 1376263, 8, 0, 1376264, 8, 0, 1376265, 5, 0, 1376266, 5, 0, 1376267, 5, 0, 1376268, 5, 0, 1376269, 5, 0, 1376270, 5, 0, 1376271, 5, 0, 1376272, 5, 0, 1376273, 5, 0, 1376274, 5, 0, 1376275, 5, 0, 1376276, 5, 0, 1376277, 8, 0, 1376278, 8, 0, 1376279, 3, 0, 1376280, 7, 0, 1376281, 7, 0, 1376282, 7, 0, 1507315, 3, 0, 1507316, 3, 0, 1507317, 3, 0, 1507318, 3, 0, 1507319, 7, 0, 1507320, 7, 0, 1507321, 7, 0, 1507322, 3, 0, 1507323, 3, 0, 1507324, 3, 0, 1507325, 3, 0, 1507326, 3, 0, 1507327, 3, 0, 1441792, 8, 0, 1441793, 8, 0, 1441794, 3, 0, 1441795, 3, 0, 1441796, 3, 0, 1441797, 3, 0, 1441798, 3, 0, 1441799, 3, 0, 1441800, 3, 0, 1441801, 3, 0, 1441802, 3, 0, 1441803, 3, 0, 1441804, 3, 0, 1441805, 3, 0, 1441806, 3, 0, 1441807, 3, 0, 1441808, 3, 0, 1441809, 3, 0, 1441810, 3, 0, 1441811, 3, 0, 1441812, 3, 0, 1441813, 8, 0, 1441814, 8, 0, 1441815, 3, 0, 1441816, 7, 0, 1441817, 7, 0, 1441818, 7, 0, 1572851, 7, 0, 1572852, 7, 0, 1572853, 7, 0, 1572854, 7, 0, 1572855, 7, 0, 1572856, 7, 0, 1572857, 7, 0, 1572858, 3, 0, 1572859, 3, 0, 1572860, 7, 0, 1572861, 7, 0, 1572862, 7, 0, 1572863, 3, 0, 1507328, 8, 0, 1507329, 8, 0, 1507330, 3, 0, 1507331, 7, 0, 1507332, 7, 0, 1507333, 7, 0, 1507334, 7, 0, 1507335, 7, 0, 1507336, 7, 0, 1507337, 7, 0, 1507338, 7, 0, 1507339, 7, 0, 1507340, 7, 0, 1507341, 7, 0, 1507342, 7, 0, 1507343, 7, 0, 1507344, 7, 0, 1507345, 7, 0, 1507346, 7, 0, 1507347, 7, 0, 1507348, 3, 0, 1507349, 8, 0, 1507350, 8, 0, 1507351, 3, 0, 1507352, 7, 0, 1507353, 7, 0, 1507354, 7, 0, 1638387, 7, 0, 1638388, 7, 0, 1638389, 7, 0, 1638390, 7, 0, 1638391, 7, 0, 1638392, 3, 0, 1638393, 3, 0, 1638394, 3, 0, 1638395, 3, 0, 1638396, 7, 0, 1638397, 7, 0, 1638398, 7, 0, 1638399, 3, 0, 1572864, 8, 0, 1572865, 8, 0, 1572866, 3, 0, 1572867, 7, 0, 1572868, 7, 0, 1572869, 7, 0, 1572870, 7, 0, 1572871, 7, 0, 1572872, 7, 0, 1572873, 7, 0, 1572874, 7, 0, 1572875, 7, 0, 1572876, 7, 0, 1572877, 7, 0, 1572878, 7, 0, 1572879, 7, 0, 1572880, 7, 0, 1572881, 7, 0, 1572882, 7, 0, 1572883, 7, 0, 1572884, 3, 0, 1572885, 8, 0, 1572886, 8, 0, 1572887, 3, 0, 1572888, 3, 0, 1572889, 3, 0, 1572890, 7, 0, 1703923, 7, 0, 1703924, 7, 0, 1703925, 7, 0, 1703926, 7, 0, 1703927, 7, 0, 1703928, 3, 0, 1703929, 3, 0, 1703930, 3, 0, 1703931, 3, 0, 1703932, 7, 0, 1703933, 7, 0, 1703934, 7, 0, 1703935, 3, 0, 1638400, 3, 0, 1638401, 3, 0, 1638402, 3, 0, 1638403, 7, 0, 1638404, 7, 0, 1638405, 7, 0, 1638406, 7, 0, 1638407, 7, 0, 1638408, 7, 0, 1638409, 7, 0, 1638410, 7, 0, 1638411, 7, 0, 1638412, 7, 0, 1638413, 7, 0, 1638414, 7, 0, 1638415, 7, 0, 1638416, 7, 0, 1638417, 7, 0, 1638418, 7, 0, 1638419, 7, 0, 1638420, 3, 0, 1638421, 3, 0, 1638422, 3, 0, 1638423, 3, 0, 1638424, 3, 0, 1638425, 3, 0, 1638426, 7, 0, 1769459, 7, 0, 1769460, 7, 0, 1769461, 7, 0, 1769462, 7, 0, 1769463, 7, 0, 1769464, 7, 0, 1769465, 7, 0, 1769466, 7, 0, 1769467, 7, 0, 1769468, 7, 0, 1769469, 7, 0, 1769470, 7, 0, 1769471, 7, 0, 1703936, 7, 0, 1703937, 7, 0, 1703938, 7, 0, 1703939, 7, 0, 1703940, 7, 0, 1703941, 7, 0, 1703942, 7, 0, 1703943, 7, 0, 1703944, 7, 0, 1703945, 7, 0, 1703946, 7, 0, 1703947, 7, 0, 1703948, 7, 0, 1703949, 7, 0, 1703950, 7, 0, 1703951, 7, 0, 1703952, 7, 0, 1703953, 7, 0, 1703954, 7, 0, 1703955, 7, 0, 1703956, 7, 0, 1703957, 7, 0, 1703958, 7, 0, 1703959, 7, 0, 1703960, 7, 0, 1703961, 7, 0, 1703962, 7, 0, 1834995, 7, 0, 1834996, 7, 0, 1834997, 7, 0, 1834998, 7, 0, 1834999, 7, 0, 1835000, 7, 0, 1835001, 7, 0, 1835002, 7, 0, 1835003, 7, 0, 1835004, 7, 0, 1835005, 7, 0, 1835006, 7, 0, 1835007, 7, 0, 1769472, 7, 0, 1769473, 7, 0, 1769474, 7, 0, 1769475, 7, 0, 1769476, 7, 0, 1769477, 7, 0, 1769478, 7, 0, 1769479, 7, 0, 1769480, 7, 0, 1769481, 7, 0, 1769482, 7, 0, 1769483, 7, 0, 1769484, 7, 0, 1769485, 7, 0, 1769486, 7, 0, 1769487, 7, 0, 1769488, 7, 0, 1769489, 7, 0, 1769490, 7, 0, 1769491, 7, 0, 1769492, 7, 0, 1769493, 7, 0, 1769494, 7, 0, 1769495, 7, 0, 1769496, 7, 0, 1769497, 7, 0, 1769498, 7, 0 ) + +[node name="YSort" type="YSort" parent="."] + +[node name="Tree" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 412.655, 542.278 ) + +[node name="Tree2" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 862.175, 801.526 ) + +[node name="Tree3" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 1506.73, 1272.45 ) + +[node name="Tree4" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 1045.31, 479.251 ) + +[node name="Tree5" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( -64.6703, 908.108 ) + +[node name="Tree6" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( -68.0338, 1333.6 ) + +[node name="Tree7" parent="YSort" instance=ExtResource( 13 )] +position = Vector2( 935.996, 1365.56 ) + +[node name="Trolley" parent="YSort" instance=ExtResource( 4 )] +position = Vector2( 111.946, -51.4683 ) + +[node name="Player" parent="YSort" instance=ExtResource( 1 )] +position = Vector2( 521.375, 114 ) + +[node name="House" parent="YSort" instance=ExtResource( 3 )] +position = Vector2( 1972.13, 1965.82 ) + +[node name="Neighbor" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 760.201, 407.292 ) + +[node name="Neighbor2" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 521.578, 319.171 ) + +[node name="Neighbor3" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( 477.85, 707.714 ) + +[node name="Neighbor4" parent="YSort" instance=ExtResource( 5 )] +position = Vector2( -324.858, 684.091 ) diff --git a/scenes/tree.tscn b/scenes/tree.tscn new file mode 100644 index 0000000..7d0f7f7 --- /dev/null +++ b/scenes/tree.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://roger-roger/tree.png" type="Texture" id=1] + +[node name="Tree" type="Node2D"] + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 6, 6 ) +texture = ExtResource( 1 ) diff --git a/scenes/trolley.tscn b/scenes/trolley.tscn new file mode 100644 index 0000000..beeb0ab --- /dev/null +++ b/scenes/trolley.tscn @@ -0,0 +1,36 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://roger-roger/trolley-lg.png" type="Texture" id=1] +[ext_resource path="res://scripts/trolley.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=2] +extents = Vector2( 38, 10 ) + +[sub_resource type="RectangleShape2D" id=3] +extents = Vector2( 44.5, 8.25 ) + +[node name="Trolley" type="KinematicBody2D"] +script = ExtResource( 2 ) + +[node name="TrolleySeatArea" type="Area2D" parent="."] +collision_layer = 0 + +[node name="SeatAreaShape" type="CollisionShape2D" parent="TrolleySeatArea"] +position = Vector2( -1, -41 ) +shape = SubResource( 2 ) + +[node name="Sprite" type="Sprite" parent="."] +position = Vector2( 0, -70 ) +scale = Vector2( 6, 6 ) +texture = ExtResource( 1 ) + +[node name="TrolleyShape" type="CollisionPolygon2D" parent="."] +position = Vector2( 0, -64 ) +scale = Vector2( 0.8, 0.8 ) +polygon = PoolVector2Array( 172, -5, 198, 106, 150, 106, 122, 127, 74, 109, 46, 83, 43.75, 16.25, -46.25, 16.25, -48, 48, -48, 84, -78, 110, -114, 127, -148, 107, -197, 107, -163, 5, -163, -72, 165, -72 ) + +[node name="TrolleyClosedShape" type="CollisionShape2D" parent="."] +position = Vector2( 0, -2.25 ) +shape = SubResource( 3 ) + +[connection signal="body_entered" from="TrolleySeatArea" to="." method="_on_TrolleySeatArea_body_entered"] diff --git a/scripts/house.gd b/scripts/house.gd new file mode 100644 index 0000000..79a86d5 --- /dev/null +++ b/scripts/house.gd @@ -0,0 +1,6 @@ +extends Node2D + +onready var sprite = $Sprite + +func _ready() -> void: + sprite.set_modulate(Color(1.0, 0.0, 0.0)) diff --git a/scripts/neighbor.gd b/scripts/neighbor.gd new file mode 100644 index 0000000..234f8ea --- /dev/null +++ b/scripts/neighbor.gd @@ -0,0 +1,127 @@ +extends KinematicBody2D + +class_name Neighbor + +signal neighbor_following_roger + +onready var roger_area := $RogerArea2D +onready var sprite := $AnimatedSprite +onready var wander_timer := $WanderTimer + +export var MAX_SPEED := 225 +export var ACCELERATION := 1000 +export var FRICTION := 2000 + +var state = State.IDLE +var neighbor_velocity := Vector2.ZERO +var leader: KinematicBody2D +var follower: KinematicBody2D +var rng := RandomNumberGenerator.new() +var is_wandering := false +var wander_direction := Vector2.ZERO + +enum State { + MOVE, + WANDER, + IDLE +} + +func reset_leads() -> void: + if follower != null: + follower.reset_leads() + leader = null + follower = null + +func _ready() -> void: + sprite.set_modulate(Color(.5,0,0)) + +func _physics_process(delta: float) -> void: + match state: + State.MOVE: + move_state(delta) + State.WANDER: + wander_state(delta) + State.IDLE: + idle_state(delta) + +func move_state(delta: float) -> void: +# var player := get_parent().get_node("Player") as Player +# leader.follower = self + if leader == null: + state = State.IDLE + return + var result_vector := leader.global_position - global_position + if result_vector.length() > 100: + move_neighbor(result_vector) + else: + state = State.IDLE + if result_vector.length() > 250: + leader.follower = null + leader = null + if follower != null: + follower.reset_leads() + follower = null + state = State.IDLE + +func wander_state(delta: float) -> void: + if leader != null: + state = State.MOVE + return + move_neighbor(wander_direction, true) + + +func move_neighbor(direction_vector: Vector2, is_wander: bool = false) -> void: + sprite.play("run") if not is_wander else sprite.play("walk") + var move_vector := Vector2(direction_vector).normalized() + if move_vector.x < 0 and not sprite.flip_h: + sprite.flip_h = true + elif move_vector.x > 0 and sprite.flip_h: + sprite.flip_h = false + if move_vector != Vector2.ZERO: + var velocity := move_vector * MAX_SPEED if not is_wander else move_vector * MAX_SPEED / 3 + neighbor_velocity = neighbor_velocity.move_toward(velocity, ACCELERATION * get_physics_process_delta_time()) + else: + neighbor_velocity = neighbor_velocity.move_toward(Vector2.ZERO, FRICTION * get_physics_process_delta_time()) + + neighbor_velocity = move_and_slide(neighbor_velocity) + + +func idle_state(delta: float) -> void: + if wander_timer.is_stopped(): + wander_timer.start(rng.randf_range(0, 1.5)) + sprite.play("idle") + for body in roger_area.get_overlapping_bodies(): + if body.is_class("KinematicBody2D") and not body is Trolley and leader == null and body.follower == null and body.leader != null: + leader = body + leader.follower = self + if leader != null: + state = State.MOVE + +func _on_RogerArea2D_body_entered(body: Node) -> void: + if body != self and leader == null: + if body is Player and body.follower == null: + body.follower = self + leader = body + elif body.is_class("KinematicBody2D") and not body is Trolley and body.follower == null: + print('Got neighbor body') + if body.leader != null: + print('Following the leader') + leader = body + leader.follower = self + + +func _on_WanderTimer_timeout() -> void: + if state == State.IDLE: + print('wander timer done') + var rand_x = rng.randf_range(-1.0, 1.0) + var rand_y = rng.randf_range(-1.0, 1.0) + var wander_time = rng.randf_range(1.0, 1.5) + state = State.WANDER + wander_direction = Vector2(rand_x, rand_y) + wander_timer.start(wander_time) + elif state == State.WANDER: + print('Done wandering') + var wait_time = rng.randf_range(1.0, 5.5) + state = State.IDLE + wander_timer.start(wait_time) + diff --git a/scripts/player.gd b/scripts/player.gd new file mode 100644 index 0000000..75b3160 --- /dev/null +++ b/scripts/player.gd @@ -0,0 +1,63 @@ +extends KinematicBody2D + +class_name Player + +export var MAX_SPEED := 300 +export var ACCELERATION := 1000 +export var FRICTION := 2000 + +var player_velocity = Vector2.ZERO +var state = State.IDLE +var follower : KinematicBody2D + +onready var sprite := $AnimatedSprite + +enum State { + MOVE, + IDLE +} + + +func _physics_process(delta: float) -> void: + match state: + State.MOVE: + move_state(delta) + State.IDLE: + idle_state(delta) + +func move_state(delta: float) -> void: + var input_vector := Vector2.ZERO + input_vector.x = Input.get_action_strength("ui_right") - Input.get_action_strength("ui_left") + input_vector.y = Input.get_action_strength("ui_down") - Input.get_action_strength("ui_up") + input_vector.normalized() + + if input_vector.x < 0 and not sprite.flip_h: + sprite.flip_h = true + elif input_vector.x > 0 and sprite.flip_h: + sprite.flip_h = false + + + if input_vector != Vector2.ZERO: + player_velocity = player_velocity.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta) + else: + player_velocity = player_velocity.move_toward(Vector2.ZERO, FRICTION * delta) + + player_velocity = move_and_slide(player_velocity) + + if player_velocity == Vector2.ZERO: + state = State.IDLE + +func idle_state(delta: float) -> void: + if Input.is_action_just_pressed("ui_up") or Input.is_action_just_pressed("ui_down") or Input.is_action_just_pressed("ui_left") or Input.is_action_just_pressed("ui_right"): + sprite.set_animation("run") + state = State.MOVE + else: + sprite.set_animation("idle") +# if Input.is_action_pressed("ui_up"): +# speed.y -= ACCELERATION +# elif Input.is_action_pressed("ui_right"): +# print("right") +# elif Input.is_action_pressed("ui_left"): +# print("left") +# elif Input.is_action_pressed("ui_down"): +# print("down") diff --git a/scripts/stage.gd b/scripts/stage.gd new file mode 100644 index 0000000..3eb6c96 --- /dev/null +++ b/scripts/stage.gd @@ -0,0 +1,2 @@ +extends Node2D + diff --git a/scripts/trolley.gd b/scripts/trolley.gd new file mode 100644 index 0000000..ac7d185 --- /dev/null +++ b/scripts/trolley.gd @@ -0,0 +1,33 @@ +extends KinematicBody2D + +class_name Trolley + +export var TIME = 60 +onready var trolley_closed_shape = $TrolleyClosedShape +export var MAX_VELOCITY = .3 + +var velocity := Vector2.ZERO +var has_roger := false + +func _ready() -> void: + trolley_closed_shape.set_deferred("disabled", true) + +func _physics_process(delta: float) -> void: + velocity.x = move_toward(velocity.x, MAX_VELOCITY, delta if not has_roger else delta * 10) + var collision := move_and_collide(velocity) + if collision: + var collider = collision.get_collider() + if collider.get_class() == "KinematicBody2D": + if has_roger: + MAX_VELOCITY = 10 + collider.move_and_collide(velocity * 3) + + + + +func _on_TrolleySeatArea_body_entered(body: Node) -> void: + if body is Player: + has_roger = true + print('closing trolley') + trolley_closed_shape.set_deferred("disabled", false) +