diff --git a/Characters/Player/Aimo/explosion.ogg.import b/Characters/Player/Aimo/explosion.ogg.import new file mode 100644 index 0000000..9e7edc0 --- /dev/null +++ b/Characters/Player/Aimo/explosion.ogg.import @@ -0,0 +1,13 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +valid=false + +[deps] + +source_file="res://Characters/Player/Aimo/explosion.ogg" +[params] + +loop=true +loop_offset=0 diff --git a/Characters/Player/Aimo/explosion.ogv b/Characters/Player/Aimo/explosion.ogv new file mode 100644 index 0000000..f13217e Binary files /dev/null and b/Characters/Player/Aimo/explosion.ogv differ diff --git a/Characters/Player/Player.tscn b/Characters/Player/Player.tscn index 99591ce..765278b 100644 --- a/Characters/Player/Player.tscn +++ b/Characters/Player/Player.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=2] +[gd_scene load_steps=21 format=2] [ext_resource path="res://Characters/Player/player.gd" type="Script" id=1] [ext_resource path="res://Characters/Player/Bit/Idle_01.png" type="Texture" id=2] @@ -14,6 +14,7 @@ [ext_resource path="res://Characters/Player/Bit/Run_06.png" type="Texture" id=12] [ext_resource path="res://Lightmaps/PlayerLight.png" type="Texture" id=13] [ext_resource path="res://Lightmaps/CompleteWhite.png" type="Texture" id=14] +[ext_resource path="res://Sounds/Concrete Steps.ogg" type="AudioStream" id=15] [sub_resource type="CapsuleShape2D" id=1] radius = 11.2128 @@ -38,10 +39,13 @@ animations = [ { } ] [sub_resource type="CircleShape2D" id=3] -radius = 121.239 +radius = 197.889 [sub_resource type="CircleShape2D" id=4] -radius = 139.247 +radius = 227.776 + +[sub_resource type="CircleShape2D" id=5] +radius = 19.982 [node name="Player" type="KinematicBody2D"] position = Vector2( 0.377872, 0.100608 ) @@ -49,7 +53,7 @@ script = ExtResource( 1 ) __meta__ = { "_edit_group_": true } -BASE_CAMERA_ZOOM = 0.4 +BASE_CAMERA_ZOOM = 0.6 VIEW_SMOOTH_FACTOR = 0.1 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] @@ -62,7 +66,6 @@ shape = SubResource( 1 ) position = Vector2( -1.21067, 0.601201 ) frames = SubResource( 2 ) animation = "idle" -frame = 1 playing = true [node name="Label" type="Label" parent="."] @@ -80,7 +83,7 @@ __meta__ = { position = Vector2( -0.495953, 13.2623 ) z_index = 2 texture = ExtResource( 13 ) -texture_scale = 0.95 +texture_scale = 1.6 energy = 0.7 shadow_enabled = true shadow_filter = 4 @@ -93,6 +96,11 @@ energy = 0.7 mode = 1 shadow_filter = 2 +[node name="ConcreteSteps" type="AudioStreamPlayer2D" parent="."] +stream = ExtResource( 15 ) +max_distance = 200.0 +attenuation = 5.09823 + [node name="View" type="Area2D" parent="."] modulate = Color( 0.192157, 0.239216, 0.713726, 1 ) @@ -106,5 +114,10 @@ modulate = Color( 0.658824, 0.984314, 0.227451, 1 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="Receive"] modulate = Color( 0.439216, 0.427451, 0.427451, 1 ) shape = SubResource( 4 ) + +[node name="Kill" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Kill"] +shape = SubResource( 5 ) [connection signal="body_entered" from="View" to="." method="_on_Area2D_body_entered"] [connection signal="body_exited" from="View" to="." method="_on_Area2D_body_exited"] diff --git a/Characters/Player/player.gd b/Characters/Player/player.gd index 45e7441..924d696 100644 --- a/Characters/Player/player.gd +++ b/Characters/Player/player.gd @@ -24,6 +24,13 @@ var look_direction = Vector2(1, 0) var minimap = false var zoom_interpolation = 0 +# True if step sound is playing +var sound_playing = false +# Contains id of the underlying tile +# 0: Office Concrete +# 1: Office Concrete 2 +var current_ground = 0 + # Get camara onready var camera_focus = $"/root/Node2D/Game/Focus" as Position2D onready var camera = $"/root/Node2D/Game/Focus/Camera" as Camera2D @@ -60,8 +67,17 @@ func _physics_process(delta): # Put focus on player if not in minimap var start = Vector2(BASE_CAMERA_ZOOM, BASE_CAMERA_ZOOM) var end = Vector2(1.5, 1.5) + + if $Kill.get_overlapping_bodies().size() > 1: + ($"/root/Node2D/GUI/Game/Kill" as Button).disabled = false + else: + ($"/root/Node2D/GUI/Game/Kill" as Button).disabled = true + + # Camera movement if !minimap: - camera_focus.position = position + if is_network_master(): + camera_focus.position = position + if zoom_interpolation <= 1.1: zoom_interpolation -= 0.05 camera.set_zoom(start.cubic_interpolate(end, start/2, end/2, zoom_interpolation)) @@ -88,7 +104,6 @@ func _physics_process(delta): """ MOVEMENT """ - var direction = MoveDirection.NONE var RIGHT = Input.is_action_pressed("ui_right") @@ -131,6 +146,11 @@ func _physics_process(delta): Networking.update_position(int(name), position) func _move(direction): + if direction != MoveDirection.NONE: + play_step() + else: + $ConcreteSteps.stop() + match direction: MoveDirection.NONE: return @@ -156,3 +176,8 @@ func _move(direction): velocity.x = MOVE_SPEED*RUN_MULTIPLIER else: velocity.x = MOVE_SPEED + +func play_step(): + if !$ConcreteSteps.playing: + $ConcreteSteps.play() + sound_playing = true diff --git a/Items/Wifi/Wifi.gd b/Items/Wifi/Wifi.gd index 4334427..376cff2 100644 --- a/Items/Wifi/Wifi.gd +++ b/Items/Wifi/Wifi.gd @@ -56,12 +56,15 @@ func _on_Timer_timeout(): if progressbar.value >= 100: $Light2D.visible = false $Area2D/CollisionShape2D.disabled = true + Networking.add_to_chat("You did task Wifi") _on_Close_pressed() timer.wait_time = rng.randf_range(0.1, 0.5) progressbar.value += rng.randf_range(1, 4.3) if progressbar.value >= 100: + (get_node("/root/Node2D/Hints/Explosion") as VideoPlayer).visible = true + (get_node("/root/Node2D/Hints/Explosion") as VideoPlayer).play() $Task/UI/Close.visible = false timer.wait_time = 3 diff --git a/Items/interactables.gd b/Items/interactables.gd index ad7b31f..66839c8 100644 --- a/Items/interactables.gd +++ b/Items/interactables.gd @@ -7,7 +7,7 @@ func _ready(): # Spawn new light for all tablets for cell in get_used_cells_by_id(0): var wifi = load("res://Items/Wifi/Wifi.tscn").instance() as Node2D - var center = Vector2(8, 8) + cell * 16 + var center = Vector2(24, 24) + cell * 48 wifi.position = center add_child(wifi) @@ -15,6 +15,7 @@ func _process(delta): if timer: for cell in get_used_cells_by_id(0): var tile = get_cell_autotile_coord(cell.x, cell.y) + print(cell.x, cell.y) if int(tile.x + 1) % 3 == 0 and animate_forwards: animate_forwards = false if int(tile.x) % 3 == 0 and !animate_forwards: @@ -26,7 +27,5 @@ func _process(delta): set_cell(cell.x, cell.y, 0, false, false, false, Vector2(tile.x-1, tile.y)) timer = false - - func _on_Timer_timeout(): timer = true diff --git a/Main.tscn b/Main.tscn index 2fc7a1b..6f52238 100644 --- a/Main.tscn +++ b/Main.tscn @@ -1,21 +1,65 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=23 format=2] [ext_resource path="res://Tilemaps/Office_walls_floors_48x48.png" type="Texture" id=1] [ext_resource path="res://client.gd" type="Script" id=2] [ext_resource path="res://Tilemaps/Interactables.png" type="Texture" id=3] [ext_resource path="res://Tilemaps/Office_interiors_shadowless_48x48.png" type="Texture" id=4] [ext_resource path="res://Items/interactables.gd" type="Script" id=5] +[ext_resource path="res://Characters/Player/Aimo/explosion.ogv" type="VideoStream" id=6] -[sub_resource type="ConvexPolygonShape2D" id=5] +[sub_resource type="TileSet" id=12] +0/name = "Interactables.png 0" +0/texture = ExtResource( 3 ) +0/tex_offset = Vector2( 0, 0 ) +0/modulate = Color( 1, 1, 1, 1 ) +0/region = Rect2( 0, 0, 144, 48 ) +0/tile_mode = 1 +0/autotile/bitmask_mode = 0 +0/autotile/bitmask_flags = [ ] +0/autotile/icon_coordinate = Vector2( 0, 0 ) +0/autotile/tile_size = Vector2( 48, 48 ) +0/autotile/spacing = 0 +0/autotile/occluder_map = [ ] +0/autotile/navpoly_map = [ ] +0/autotile/priority_map = [ ] +0/autotile/z_index_map = [ ] +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 + +[sub_resource type="ConvexPolygonShape2D" id=1] points = PoolVector2Array( 48, 96, 0, 96, 0, 0, 48, 0 ) +[sub_resource type="OccluderPolygon2D" id=2] +polygon = PoolVector2Array( 48, 16, 0, 16, 0, 0, 48, 0 ) + [sub_resource type="ConvexPolygonShape2D" id=3] points = PoolVector2Array( 48, 96, 0, 96, 0, 0, 48, 0 ) [sub_resource type="ConvexPolygonShape2D" id=4] points = PoolVector2Array( 32, 64, 16, 64, 16, 0, 32, 0 ) -[sub_resource type="TileSet" id=2] +[sub_resource type="OccluderPolygon2D" id=14] +polygon = PoolVector2Array( 48, 18.0497, 0, 18.0497, 0, 0, 48, 0 ) + +[sub_resource type="ConvexPolygonShape2D" id=13] +points = PoolVector2Array( 48, 17.6311, 0, 17.6311, 0, 0, 48, 0 ) + +[sub_resource type="OccluderPolygon2D" id=15] +polygon = PoolVector2Array( 48, 48, 6.10352e-05, 48, 6.10352e-05, 3.05176e-05, 48, 3.05176e-05 ) + +[sub_resource type="OccluderPolygon2D" id=16] +polygon = PoolVector2Array( 48, 48, 6.10352e-05, 48, 6.10352e-05, 3.05176e-05, 48, 3.05176e-05 ) + +[sub_resource type="ConvexPolygonShape2D" id=17] +points = PoolVector2Array( 48, 48, 0, 48, 0, 27.4112, 48, 27.4112 ) + +[sub_resource type="TileSet" id=5] 0/name = "Office_walls_floors_48x48.png 0" 0/texture = ExtResource( 1 ) 0/tex_offset = Vector2( 0, 0 ) @@ -40,14 +84,14 @@ points = PoolVector2Array( 32, 64, 16, 64, 16, 0, 32, 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 = SubResource( 5 ) +1/shape = SubResource( 1 ) 1/shape_one_way = false 1/shape_one_way_margin = 1.0 1/shapes = [ { "autotile_coord": Vector2( 0, 0 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 5 ), +"shape": SubResource( 1 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) } ] 1/z_index = 0 @@ -58,6 +102,7 @@ points = PoolVector2Array( 32, 64, 16, 64, 16, 0, 32, 0 ) 2/region = Rect2( 48, 48, 48, 96 ) 2/tile_mode = 0 2/occluder_offset = Vector2( 0, 0 ) +2/occluder = SubResource( 2 ) 2/navigation_offset = Vector2( 0, 0 ) 2/shape_offset = Vector2( 0, 0 ) 2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) @@ -107,39 +152,123 @@ points = PoolVector2Array( 32, 64, 16, 64, 16, 0, 32, 0 ) "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) } ] 4/z_index = 0 +5/name = "Office_walls_floors_48x48.png 5" +5/texture = ExtResource( 1 ) +5/tex_offset = Vector2( 0, 0 ) +5/modulate = Color( 1, 1, 1, 1 ) +5/region = Rect2( 288, 48, 48, 96 ) +5/tile_mode = 0 +5/occluder_offset = Vector2( 0, 0 ) +5/occluder = SubResource( 14 ) +5/navigation_offset = Vector2( 0, 0 ) +5/shape_offset = Vector2( 0, 0 ) +5/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +5/shape = SubResource( 13 ) +5/shape_one_way = false +5/shape_one_way_margin = 1.0 +5/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 13 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +5/z_index = 0 +6/name = "Office_walls_floors_48x48.png 6" +6/texture = ExtResource( 1 ) +6/tex_offset = Vector2( 0, 0 ) +6/modulate = Color( 1, 1, 1, 1 ) +6/region = Rect2( 288, 192, 48, 48 ) +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 = "Office_walls_floors_48x48.png 7" +7/texture = ExtResource( 1 ) +7/tex_offset = Vector2( 0, 0 ) +7/modulate = Color( 1, 1, 1, 1 ) +7/region = Rect2( 288, 192, 48, 48 ) +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_one_way = false +7/shape_one_way_margin = 0.0 +7/shapes = [ ] +7/z_index = 0 +8/name = "Office_walls_floors_48x48.png 8" +8/texture = ExtResource( 1 ) +8/tex_offset = Vector2( 0, 0 ) +8/modulate = Color( 1, 1, 1, 1 ) +8/region = Rect2( 672, 288, 48, 96 ) +8/tile_mode = 1 +8/autotile/bitmask_mode = 0 +8/autotile/bitmask_flags = [ ] +8/autotile/icon_coordinate = Vector2( 0, 0 ) +8/autotile/tile_size = Vector2( 48, 48 ) +8/autotile/spacing = 0 +8/autotile/occluder_map = [ Vector2( 0, 0 ), SubResource( 15 ), Vector2( 0, 1 ), SubResource( 16 ) ] +8/autotile/navpoly_map = [ ] +8/autotile/priority_map = [ ] +8/autotile/z_index_map = [ Vector3( 0, 0, 3 ), Vector3( 0, 1, 3 ) ] +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 = SubResource( 17 ) +8/shape_one_way = false +8/shape_one_way_margin = 1.0 +8/shapes = [ { +"autotile_coord": Vector2( 0, 1 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 17 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +8/z_index = 0 +9/name = "Office_walls_floors_48x48.png 9" +9/texture = ExtResource( 1 ) +9/tex_offset = Vector2( 0, 0 ) +9/modulate = Color( 1, 1, 1, 1 ) +9/region = Rect2( 672, 288, 48, 48 ) +9/tile_mode = 1 +9/autotile/bitmask_mode = 0 +9/autotile/bitmask_flags = [ ] +9/autotile/icon_coordinate = Vector2( 0, 0 ) +9/autotile/tile_size = Vector2( 48, 48 ) +9/autotile/spacing = 0 +9/autotile/occluder_map = [ ] +9/autotile/navpoly_map = [ ] +9/autotile/priority_map = [ ] +9/autotile/z_index_map = [ Vector3( 0, 0, 2 ) ] +9/occluder_offset = Vector2( 0, 0 ) +9/navigation_offset = Vector2( 0, 0 ) +9/shape_offset = Vector2( 0, 0 ) +9/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +9/shape_one_way = false +9/shape_one_way_margin = 0.0 +9/shapes = [ ] +9/z_index = 0 -[sub_resource type="TileSet" id=1] -0/name = "Interactables.png 0" -0/texture = ExtResource( 3 ) -0/tex_offset = Vector2( 0, 0 ) -0/modulate = Color( 1, 1, 1, 1 ) -0/region = Rect2( 0, 0, 48, 16 ) -0/tile_mode = 1 -0/autotile/bitmask_mode = 0 -0/autotile/bitmask_flags = [ ] -0/autotile/icon_coordinate = Vector2( 0, 0 ) -0/autotile/tile_size = Vector2( 16, 16 ) -0/autotile/spacing = 0 -0/autotile/occluder_map = [ ] -0/autotile/navpoly_map = [ ] -0/autotile/priority_map = [ ] -0/autotile/z_index_map = [ ] -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 - -[sub_resource type="OccluderPolygon2D" id=8] +[sub_resource type="OccluderPolygon2D" id=7] polygon = PoolVector2Array( 30.049, 8.3645, 66.097, 8.3645, 65.9032, 11.2716, 69.0041, 11.4654, 69.1979, 13.9849, 71.7174, 13.9849, 72.105, 41.1179, 69.1979, 40.924, 69.0041, 46.7382, 71.7174, 46.932, 71.9112, 44.2188, 77.9192, 44.4125, 78.113, 47.1259, 81.0201, 47.1259, 81.4077, 67.8632, 78.113, 68.2508, 78.113, 71.7393, 72.105, 71.5455, 71.9112, 76.1968, 69.3917, 76.7783, 69.3917, 80.2668, 56.9881, 80.2668, 56.9881, 82.5925, 60.2828, 82.7863, 60.2828, 85.8871, 62.8022, 86.081, 63.1899, 88.9881, 66.097, 89.1819, 66.097, 94.8023, 57.1819, 94.6085, 57.1819, 92.089, 54.4686, 92.089, 54.081, 89.1819, 51.1739, 89.1819, 50.7863, 86.4686, 44.7783, 86.2748, 44.5844, 89.1819, 42.2588, 89.3757, 42.2588, 92.6704, 39.3517, 92.089, 39.1578, 95.1899, 29.8551, 94.9961, 30.049, 89.3757, 32.9561, 88.9881, 32.7622, 86.4686, 36.0569, 86.081, 36.0569, 83.5615, 38.7702, 82.98, 38.7702, 80.2668, 26.948, 80.073, 26.7542, 77.5535, 24.4285, 77.3597, 23.8471, 71.7393, 18.4205, 71.1578, 18.0329, 68.0569, 15.1258, 68.0569, 14.932, 47.3196, 17.8391, 47.3196, 18.033, 44.4125, 23.8471, 44.0249, 24.041, 47.1258, 26.9481, 46.932, 26.9481, 41.3116, 24.041, 40.924, 24.2347, 13.9849, 26.9481, 14.1787, 26.9481, 11.2716, 30.049, 11.2716 ) -[sub_resource type="ConvexPolygonShape2D" id=7] -points = PoolVector2Array( 80, 96, 16, 96, 16, 0, 80, 0 ) +[sub_resource type="ConvexPolygonShape2D" id=8] +points = PoolVector2Array( 23.4595, 8.71332, 72.7639, 8.48077, 72.2988, 42.6683, 80.9038, 43.5985, 81.1364, 68.0182, 70.4382, 79.1814, 57.647, 80.1117, 66.4846, 89.1819, 66.4846, 95.4612, 29.7388, 95.6938, 29.0411, 90.1121, 38.1113, 80.1117, 27.1806, 80.1117, 15.087, 68.2507, 15.087, 46.6219, 22.7618, 38.7146 ) -[sub_resource type="TileSet" id=6] +[sub_resource type="OccluderPolygon2D" id=9] +polygon = PoolVector2Array( 1.2739, 4.64117, 79.6958, 4.36206, 80, 96, 64, 96, 64.0673, 88.0865, 16.6234, 88.3657, 16.6234, 94.5054, 0.994812, 94.5054 ) + +[sub_resource type="ConvexPolygonShape2D" id=10] +points = PoolVector2Array( 80, 96, 0, 96, 0, 0, 80, 0 ) + +[sub_resource type="TileSet" id=11] 0/name = "Office_interiors_shadowless_48x48.png 0" 0/texture = ExtResource( 4 ) 0/tex_offset = Vector2( 0, 0 ) @@ -147,21 +276,57 @@ points = PoolVector2Array( 80, 96, 16, 96, 16, 0, 80, 0 ) 0/region = Rect2( 384, 352, 96, 96 ) 0/tile_mode = 0 0/occluder_offset = Vector2( 0, 0 ) -0/occluder = SubResource( 8 ) +0/occluder = SubResource( 7 ) 0/navigation_offset = Vector2( 0, 0 ) 0/shape_offset = Vector2( 0, 0 ) 0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -0/shape = SubResource( 7 ) +0/shape = SubResource( 8 ) 0/shape_one_way = false 0/shape_one_way_margin = 1.0 0/shapes = [ { "autotile_coord": Vector2( 0, 0 ), "one_way": false, "one_way_margin": 1.0, -"shape": SubResource( 7 ), +"shape": SubResource( 8 ), "shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) } ] 0/z_index = 0 +1/name = "Office_interiors_shadowless_48x48.png 1" +1/texture = ExtResource( 4 ) +1/tex_offset = Vector2( 0, 0 ) +1/modulate = Color( 1, 1, 1, 1 ) +1/region = Rect2( 768, 448, 96, 80 ) +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 = -1 +2/name = "Office_interiors_shadowless_48x48.png 2" +2/texture = ExtResource( 4 ) +2/tex_offset = Vector2( 0, 0 ) +2/modulate = Color( 1, 1, 1, 1 ) +2/region = Rect2( 416, 848, 80, 96 ) +2/tile_mode = 0 +2/occluder_offset = Vector2( 0, 0 ) +2/occluder = SubResource( 9 ) +2/navigation_offset = Vector2( 0, 0 ) +2/shape_offset = Vector2( 0, 0 ) +2/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +2/shape = SubResource( 10 ) +2/shape_one_way = false +2/shape_one_way_margin = 1.0 +2/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 10 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] +2/z_index = 0 [node name="Node2D" type="Node2D"] @@ -257,7 +422,36 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="Game" type="Control" parent="GUI"] +margin_right = 40.0 +margin_bottom = 40.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Kill" type="Button" parent="GUI/Game"] +margin_left = 859.0 +margin_top = 519.0 +margin_right = 984.0 +margin_bottom = 567.0 +disabled = true +text = "Kill" +__meta__ = { +"_edit_use_anchors_": false +} + [node name="Hints" type="CanvasLayer" parent="."] +layer = 3 + +[node name="Explosion" type="VideoPlayer" parent="Hints"] +visible = false +margin_right = 1026.0 +margin_bottom = 600.0 +stream = ExtResource( 6 ) +volume_db = 2.72 +__meta__ = { +"_edit_use_anchors_": false +} [node name="KeyPress" type="Control" parent="Hints"] margin_top = 539.0 @@ -298,36 +492,31 @@ text = "to interact" [node name="Game" type="Node2D" parent="."] -[node name="Map" type="TileMap" parent="Game"] -tile_set = SubResource( 2 ) -cell_size = Vector2( 48, 48 ) -compatibility_mode = true -format = 1 -tile_data = PoolIntArray( -262149, 536870914, 0, -262148, 536870914, 0, -262147, 536870914, 0, -262146, 536870914, 0, -262145, 536870914, 0, -327680, 536870914, 0, -327679, 536870914, 0, -327678, 536870914, 0, -327677, 536870914, 0, -327676, 536870914, 0, -131077, 536870912, 0, -131076, 536870912, 0, -131075, 536870912, 0, -131074, 536870912, 0, -131073, 536870912, 0, -196608, 536870912, 0, -196607, 536870912, 0, -196606, 536870912, 0, -196605, 536870912, 0, -196604, 536870912, 0, -65541, 536870912, 0, -65540, 536870912, 0, -65539, 536870912, 0, -65538, 536870912, 0, -65537, 536870912, 0, -131072, 536870912, 0, -131071, 536870912, 0, -131070, 536870912, 0, -131069, 536870912, 0, -131068, 536870912, 0, -5, 536870912, 0, -4, 536870912, 0, -3, 536870912, 0, -2, 536870912, 0, -1, 536870912, 0, -65536, 536870912, 0, -65535, 536870912, 0, -65534, 536870912, 0, -65533, 536870912, 0, -65532, 536870912, 0, 65531, 536870912, 0, 65532, 536870912, 0, 65533, 536870912, 0, 65534, 536870912, 0, 65535, 536870912, 0, 0, 536870912, 0, 1, 536870912, 0, 2, 536870912, 0, 3, 536870912, 0, 4, 536870912, 0, 131067, 536870912, 0, 131068, 536870912, 0, 131069, 536870912, 0, 131070, 536870912, 0, 131071, 536870912, 0, 65536, 536870912, 0, 65537, 536870912, 0, 65538, 536870912, 0, 65539, 536870912, 0, 65540, 536870912, 0, 196603, 536870912, 0, 196604, 536870912, 0, 196605, 536870912, 0, 196606, 536870912, 0, 196607, 536870912, 0, 131072, 536870912, 0, 131073, 536870912, 0, 131074, 536870912, 0, 131075, 536870912, 0, 131076, 536870912, 0, 262139, 536870912, 0, 262140, 536870912, 0, 262141, 536870912, 0, 262142, 536870912, 0, 262143, 536870912, 0, 196608, 536870912, 0, 196609, 536870912, 0, 196610, 536870912, 0, 196611, 536870912, 0, 196612, 536870912, 0 ) - [node name="Interactables" type="TileMap" parent="Game"] -tile_set = SubResource( 1 ) -cell_size = Vector2( 16, 16 ) +z_index = 2 +tile_set = SubResource( 12 ) +cell_size = Vector2( 48, 48 ) format = 1 -tile_data = PoolIntArray( 131080, 0, 0, 524289, 0, 0, 851978, 0, 0 ) +tile_data = PoolIntArray( -196612, 0, 0, -262144, 0, 0, -262141, 0, 0 ) script = ExtResource( 5 ) -[node name="Timer" type="Timer" parent="Game/Interactables"] -autostart = true - -[node name="Interior" type="TileMap" parent="Game"] -tile_set = SubResource( 6 ) +[node name="Map" type="TileMap" parent="Game"] +tile_set = SubResource( 5 ) cell_size = Vector2( 48, 48 ) format = 1 -tile_data = PoolIntArray( -1, 536870912, 0 ) +tile_data = PoolIntArray( -262150, 2, 0, -262149, 536870914, 0, -262148, 536870914, 0, -262147, 536870914, 0, -262146, 536870914, 0, -262145, 536870914, 0, -327680, 536870914, 0, -327679, 536870914, 0, -327678, 536870914, 0, -327677, 536870914, 0, -327676, 536870914, 0, -327675, 1, 0, -327674, 1, 0, -327673, 1, 0, -327672, 1, 0, -131078, 0, 0, -131077, 536870912, 0, -131076, 536870912, 0, -131075, 536870912, 0, -131074, 536870912, 0, -131073, 536870912, 0, -196608, 536870912, 0, -196607, 536870912, 0, -196606, 536870912, 0, -196605, 536870912, 0, -196604, 536870912, 0, -196603, 6, 0, -196602, 6, 0, -196601, 6, 0, -196600, 6, 0, -65542, 0, 0, -65541, 536870912, 0, -65540, 536870912, 0, -65539, 536870912, 0, -65538, 536870912, 0, -65537, 536870912, 0, -131072, 536870912, 0, -131071, 536870912, 0, -131070, 536870912, 0, -131069, 536870912, 0, -131068, 536870912, 0, -131067, 6, 0, -131066, 7, 0, -131065, 7, 0, -131064, 6, 0, -6, 0, 0, -5, 536870912, 0, -4, 536870912, 0, -3, 536870912, 0, -2, 536870912, 0, -1, 536870912, 0, -65536, 536870912, 0, -65535, 536870912, 0, -65534, 536870912, 0, -65533, 536870912, 0, -65532, 536870912, 0, -65531, 6, 0, -65530, 6, 0, -65529, 6, 0, -65528, 6, 0, 65530, 0, 0, 65531, 536870912, 0, 65532, 536870912, 0, 65533, 536870912, 0, 65534, 536870912, 0, 65535, 536870912, 0, 0, 536870912, 0, 1, 536870912, 0, 2, 536870912, 0, 3, 536870912, 0, 4, 536870912, 0, 5, 7, 0, 6, 7, 0, 7, 6, 0, 8, 7, 0, 131066, 0, 0, 131067, 536870912, 0, 131068, 536870912, 0, 131069, 536870912, 0, 131070, 536870912, 0, 131071, 536870912, 0, 65536, 536870912, 0, 65537, 536870912, 0, 65538, 536870912, 0, 65539, 536870912, 0, 65540, 536870912, 0, 65541, 6, 0, 65542, 6, 0, 65543, 6, 0, 65544, 6, 0, 196602, 0, 0, 196603, 536870912, 0, 196604, 536870912, 0, 196605, 536870912, 0, 196606, 536870912, 0, 196607, 536870912, 0, 131072, 536870912, 0, 131073, 536870912, 0, 131074, 536870912, 0, 131075, 536870912, 0, 131076, 536870912, 0, 131077, 6, 0, 131078, 6, 0, 131079, 6, 0, 131080, 6, 0, 262138, 0, 0, 262139, 536870912, 0, 262140, 536870912, 0, 262141, 536870912, 0, 262142, 536870912, 0, 262143, 536870912, 0, 196608, 536870912, 0, 196609, 536870912, 0, 196610, 536870912, 0, 196611, 536870912, 0, 196612, 536870912, 0, 196613, 536870918, 0, 196614, 6, 0, 196615, 6, 0, 196616, 6, 0 ) + +[node name="Interior" type="TileMap" parent="Game"] +tile_set = SubResource( 11 ) +cell_size = Vector2( 48, 48 ) +format = 1 +tile_data = PoolIntArray( -5, 2, 0, -3, 2, 0, -1, 536870912, 0 ) [node name="Connection" type="Node" parent="Game"] script = ExtResource( 2 ) [node name="Spawn" type="Node2D" parent="Game"] -position = Vector2( -129.097, 30.837 ) - -[node name="Sprite" type="Sprite" parent="Game"] +position = Vector2( 118.516, -73.2805 ) [node name="Focus" type="Position2D" parent="Game"] __meta__ = { @@ -341,4 +530,4 @@ smoothing_enabled = true smoothing_speed = 6.0 [connection signal="pressed" from="GUI/Control/Join" to="Game/Connection" method="_on_Join_pressed"] [connection signal="pressed" from="GUI/Control/Create" to="Game/Connection" method="_on_Create_pressed"] -[connection signal="timeout" from="Game/Interactables/Timer" to="Game/Interactables" method="_on_Timer_timeout"] +[connection signal="finished" from="Hints/Explosion" to="Game/Connection" method="_on_Explosion_finished"] diff --git a/Shader/Puddle.shader b/Shader/Puddle.shader new file mode 100644 index 0000000..2c8e80c --- /dev/null +++ b/Shader/Puddle.shader @@ -0,0 +1,8 @@ +shader_type canvas_item; + +void fragment() { + float uv_height = SCREEN_PIXEL_SIZE.y / TEXTURE_PIXEL_SIZE.y; + vec2 reflected_screenuv = vec2(SCREEN_UV.x, SCREEN_UV.y + uv_height * UV.y * 2.0); + + COLOR = texture(SCREEN_TEXTURE, reflected_screenuv); +} \ No newline at end of file diff --git a/Sounds/Concrete Steps.ogg b/Sounds/Concrete Steps.ogg new file mode 100644 index 0000000..ec7e73d Binary files /dev/null and b/Sounds/Concrete Steps.ogg differ diff --git a/Sounds/Concrete Steps.ogg.import b/Sounds/Concrete Steps.ogg.import new file mode 100644 index 0000000..1d490da --- /dev/null +++ b/Sounds/Concrete Steps.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/Concrete Steps.ogg-965a4ebf642bc501cab5e049d89245d6.oggstr" + +[deps] + +source_file="res://Sounds/Concrete Steps.ogg" +dest_files=[ "res://.import/Concrete Steps.ogg-965a4ebf642bc501cab5e049d89245d6.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/Tilemaps/Interactables.png b/Tilemaps/Interactables.png index d7cb967..8935e6d 100644 Binary files a/Tilemaps/Interactables.png and b/Tilemaps/Interactables.png differ diff --git a/Tilemaps/Puddle.png b/Tilemaps/Puddle.png new file mode 100644 index 0000000..63bf0ed Binary files /dev/null and b/Tilemaps/Puddle.png differ diff --git a/Tilemaps/Puddle.png.import b/Tilemaps/Puddle.png.import new file mode 100644 index 0000000..41febf4 --- /dev/null +++ b/Tilemaps/Puddle.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/Puddle.png-0b435546b8b552f6bee22a3320f291db.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Tilemaps/Puddle.png" +dest_files=[ "res://.import/Puddle.png-0b435546b8b552f6bee22a3320f291db.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=false +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 +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/afu_linux.pck b/afu_linux.pck index 99609aa..fb48a1f 100644 Binary files a/afu_linux.pck and b/afu_linux.pck differ diff --git a/client.gd b/client.gd index 58cd366..bdaa613 100644 --- a/client.gd +++ b/client.gd @@ -9,3 +9,7 @@ func _on_Create_pressed(): func _on_Join_pressed(): if(get_tree().get_network_peer() == null): Networking.connect_to_server() + + +func _on_Explosion_finished(): + $"/root/Node2D/Hints/Explosion".visible = false diff --git a/libgitapi.so b/libgitapi.so new file mode 100644 index 0000000..a11dd5a Binary files /dev/null and b/libgitapi.so differ diff --git a/networking.gd b/networking.gd index 3c892fb..a2a2002 100644 --- a/networking.gd +++ b/networking.gd @@ -140,6 +140,7 @@ func create_new_player(id: int, info): var new_player = (load('res://Characters/Player/Player.tscn').instance() as KinematicBody2D) new_player.position = info.position new_player.name = str(id) + new_player.z_index = 10 new_player.set_network_master(id) if get_tree().get_network_unique_id() != id: