diff --git a/project.godot b/project.godot index a2e70fd..d3b8ed9 100644 --- a/project.godot +++ b/project.godot @@ -84,6 +84,7 @@ throw={ 2d_physics/layer_1="player" 2d_physics/layer_2="environment" 2d_physics/layer_3="objects" +2d_physics/layer_4="weapons" [rendering] diff --git a/scenes/bullet.tscn b/scenes/bullet.tscn index 5f9fdd5..de8fb23 100644 --- a/scenes/bullet.tscn +++ b/scenes/bullet.tscn @@ -7,6 +7,8 @@ size = Vector2(16, 2) [node name="Bullet" type="Area2D"] +collision_layer = 8 +collision_mask = 14 script = ExtResource("1_mkf8s") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/scenes/crate.tscn b/scenes/crate.tscn index e64dc02..b4a4c88 100644 --- a/scenes/crate.tscn +++ b/scenes/crate.tscn @@ -3,16 +3,15 @@ [ext_resource type="Texture2D" uid="uid://7jy7xuy24fug" path="res://graphics/tiles/crate-100-custom.png" id="1_b66cd"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_uwrxv"] -size = Vector2(50, 50) +size = Vector2(100, 100) -[node name="Crate" type="RigidBody2D"] +[node name="LargeCrate" type="RigidBody2D"] collision_layer = 4 -collision_mask = 7 +collision_mask = 15 metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="."] position = Vector2(9.536743e-07, 1.9073486e-06) -scale = Vector2(0.50000006, 0.50000006) texture = ExtResource("1_b66cd") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/scenes/game.tscn b/scenes/game.tscn index 14fb39e..06f9904 100644 --- a/scenes/game.tscn +++ b/scenes/game.tscn @@ -39,19 +39,73 @@ texture_region_size = Vector2i(32, 32) 4:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 4:0/0/terrains_peering_bit/bottom_side = 0 6:0/0 = 0 +6:0/0/terrain_set = 0 +6:0/0/terrain = 0 6:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:0/0/terrains_peering_bit/right_side = 0 +6:0/0/terrains_peering_bit/bottom_side = 0 +6:0/0/terrains_peering_bit/bottom_left_corner = 0 +6:0/0/terrains_peering_bit/left_side = 0 +6:0/0/terrains_peering_bit/top_left_corner = 0 +6:0/0/terrains_peering_bit/top_side = 0 +6:0/0/terrains_peering_bit/top_right_corner = 0 7:0/0 = 0 +7:0/0/terrain_set = 0 +7:0/0/terrain = 0 7:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:0/0/terrains_peering_bit/right_side = 0 +7:0/0/terrains_peering_bit/bottom_right_corner = 0 +7:0/0/terrains_peering_bit/bottom_side = 0 +7:0/0/terrains_peering_bit/left_side = 0 +7:0/0/terrains_peering_bit/top_left_corner = 0 +7:0/0/terrains_peering_bit/top_side = 0 +7:0/0/terrains_peering_bit/top_right_corner = 0 9:0/0 = 0 +9:0/0/terrain_set = 0 +9:0/0/terrain = 0 9:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:0/0/terrains_peering_bit/right_side = 0 +9:0/0/terrains_peering_bit/bottom_right_corner = 0 +9:0/0/terrains_peering_bit/bottom_side = 0 +9:0/0/terrains_peering_bit/bottom_left_corner = 0 +9:0/0/terrains_peering_bit/left_side = 0 +9:0/0/terrains_peering_bit/top_side = 0 10:0/0 = 0 +10:0/0/terrain_set = 0 +10:0/0/terrain = 0 10:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:0/0/terrains_peering_bit/right_side = 0 +10:0/0/terrains_peering_bit/bottom_side = 0 +10:0/0/terrains_peering_bit/bottom_left_corner = 0 +10:0/0/terrains_peering_bit/left_side = 0 +10:0/0/terrains_peering_bit/top_left_corner = 0 +10:0/0/terrains_peering_bit/top_side = 0 12:0/0 = 0 +12:0/0/terrain_set = 0 +12:0/0/terrain = 0 12:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:0/0/terrains_peering_bit/right_side = 0 +12:0/0/terrains_peering_bit/bottom_right_corner = 0 +12:0/0/terrains_peering_bit/bottom_side = 0 +12:0/0/terrains_peering_bit/left_side = 0 +12:0/0/terrains_peering_bit/top_side = 0 13:0/0 = 0 +13:0/0/terrain_set = 0 +13:0/0/terrain = 0 13:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:0/0/terrains_peering_bit/right_side = 0 +13:0/0/terrains_peering_bit/bottom_side = 0 +13:0/0/terrains_peering_bit/bottom_left_corner = 0 +13:0/0/terrains_peering_bit/left_side = 0 +13:0/0/terrains_peering_bit/top_side = 0 15:0/0 = 0 +15:0/0/terrain_set = 0 +15:0/0/terrain = 0 15:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +15:0/0/terrains_peering_bit/right_side = 0 +15:0/0/terrains_peering_bit/bottom_side = 0 +15:0/0/terrains_peering_bit/left_side = 0 +15:0/0/terrains_peering_bit/top_side = 0 0:1/0 = 0 0:1/0/terrain_set = 0 0:1/0/terrain = 0 @@ -89,21 +143,85 @@ texture_region_size = Vector2i(32, 32) 4:1/0/terrains_peering_bit/bottom_side = 0 4:1/0/terrains_peering_bit/top_side = 0 6:1/0 = 0 +6:1/0/terrain_set = 0 +6:1/0/terrain = 0 6:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:1/0/terrains_peering_bit/right_side = 0 +6:1/0/terrains_peering_bit/bottom_right_corner = 0 +6:1/0/terrains_peering_bit/bottom_side = 0 +6:1/0/terrains_peering_bit/bottom_left_corner = 0 +6:1/0/terrains_peering_bit/left_side = 0 +6:1/0/terrains_peering_bit/top_left_corner = 0 +6:1/0/terrains_peering_bit/top_side = 0 7:1/0 = 0 +7:1/0/terrain_set = 0 +7:1/0/terrain = 0 7:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:1/0/terrains_peering_bit/right_side = 0 +7:1/0/terrains_peering_bit/bottom_right_corner = 0 +7:1/0/terrains_peering_bit/bottom_side = 0 +7:1/0/terrains_peering_bit/bottom_left_corner = 0 +7:1/0/terrains_peering_bit/left_side = 0 +7:1/0/terrains_peering_bit/top_side = 0 +7:1/0/terrains_peering_bit/top_right_corner = 0 9:1/0 = 0 +9:1/0/terrain_set = 0 +9:1/0/terrain = 0 9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:1/0/terrains_peering_bit/right_side = 0 +9:1/0/terrains_peering_bit/bottom_right_corner = 0 +9:1/0/terrains_peering_bit/bottom_side = 0 +9:1/0/terrains_peering_bit/left_side = 0 +9:1/0/terrains_peering_bit/top_side = 0 +9:1/0/terrains_peering_bit/top_right_corner = 0 10:1/0 = 0 +10:1/0/terrain_set = 0 +10:1/0/terrain = 0 10:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:1/0/terrains_peering_bit/right_side = 0 +10:1/0/terrains_peering_bit/bottom_side = 0 +10:1/0/terrains_peering_bit/left_side = 0 +10:1/0/terrains_peering_bit/top_left_corner = 0 +10:1/0/terrains_peering_bit/top_side = 0 +10:1/0/terrains_peering_bit/top_right_corner = 0 12:1/0 = 0 +12:1/0/terrain_set = 0 +12:1/0/terrain = 0 12:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:1/0/terrains_peering_bit/right_side = 0 +12:1/0/terrains_peering_bit/bottom_side = 0 +12:1/0/terrains_peering_bit/left_side = 0 +12:1/0/terrains_peering_bit/top_side = 0 +12:1/0/terrains_peering_bit/top_right_corner = 0 13:1/0 = 0 +13:1/0/terrain_set = 0 +13:1/0/terrain = 0 13:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:1/0/terrains_peering_bit/right_side = 0 +13:1/0/terrains_peering_bit/bottom_side = 0 +13:1/0/terrains_peering_bit/left_side = 0 +13:1/0/terrains_peering_bit/top_left_corner = 0 +13:1/0/terrains_peering_bit/top_side = 0 15:1/0 = 0 +15:1/0/terrain_set = 0 +15:1/0/terrain = 0 15:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +15:1/0/terrains_peering_bit/right_side = 0 +15:1/0/terrains_peering_bit/bottom_side = 0 +15:1/0/terrains_peering_bit/bottom_left_corner = 0 +15:1/0/terrains_peering_bit/left_side = 0 +15:1/0/terrains_peering_bit/top_side = 0 +15:1/0/terrains_peering_bit/top_right_corner = 0 16:1/0 = 0 +16:1/0/terrain_set = 0 +16:1/0/terrain = 0 16:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +16:1/0/terrains_peering_bit/right_side = 0 +16:1/0/terrains_peering_bit/bottom_right_corner = 0 +16:1/0/terrains_peering_bit/bottom_side = 0 +16:1/0/terrains_peering_bit/left_side = 0 +16:1/0/terrains_peering_bit/top_left_corner = 0 +16:1/0/terrains_peering_bit/top_side = 0 0:2/0 = 0 0:2/0/terrain_set = 0 0:2/0/terrain = 0 @@ -133,21 +251,63 @@ texture_region_size = Vector2i(32, 32) 4:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 4:2/0/terrains_peering_bit/top_side = 0 6:3/0 = 0 +6:3/0/terrain_set = 0 +6:3/0/terrain = 0 6:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:3/0/terrains_peering_bit/right_side = 0 +6:3/0/terrains_peering_bit/bottom_side = 0 +6:3/0/terrains_peering_bit/top_side = 0 +6:3/0/terrains_peering_bit/top_right_corner = 0 7:3/0 = 0 +7:3/0/terrain_set = 0 +7:3/0/terrain = 0 7:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:3/0/terrains_peering_bit/bottom_side = 0 +7:3/0/terrains_peering_bit/left_side = 0 +7:3/0/terrains_peering_bit/top_left_corner = 0 +7:3/0/terrains_peering_bit/top_side = 0 9:3/0 = 0 +9:3/0/terrain_set = 0 +9:3/0/terrain = 0 9:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:3/0/terrains_peering_bit/right_side = 0 +9:3/0/terrains_peering_bit/bottom_side = 0 +9:3/0/terrains_peering_bit/bottom_left_corner = 0 +9:3/0/terrains_peering_bit/left_side = 0 10:3/0 = 0 +10:3/0/terrain_set = 0 +10:3/0/terrain = 0 10:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:3/0/terrains_peering_bit/right_side = 0 +10:3/0/terrains_peering_bit/bottom_right_corner = 0 +10:3/0/terrains_peering_bit/bottom_side = 0 +10:3/0/terrains_peering_bit/left_side = 0 12:3/0 = 0 +12:3/0/terrain_set = 0 +12:3/0/terrain = 0 12:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:3/0/terrains_peering_bit/right_side = 0 +12:3/0/terrains_peering_bit/bottom_side = 0 +12:3/0/terrains_peering_bit/top_side = 0 13:3/0 = 0 +13:3/0/terrain_set = 0 +13:3/0/terrain = 0 13:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:3/0/terrains_peering_bit/right_side = 0 +13:3/0/terrains_peering_bit/bottom_side = 0 +13:3/0/terrains_peering_bit/left_side = 0 15:3/0 = 0 +15:3/0/terrain_set = 0 +15:3/0/terrain = 0 15:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +15:3/0/terrains_peering_bit/right_side = 0 +15:3/0/terrains_peering_bit/bottom_side = 0 16:3/0 = 0 +16:3/0/terrain_set = 0 +16:3/0/terrain = 0 16:3/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +16:3/0/terrains_peering_bit/bottom_side = 0 +16:3/0/terrains_peering_bit/left_side = 0 0:4/0 = 0 0:4/0/terrain_set = 0 0:4/0/terrain = 0 @@ -169,28 +329,70 @@ texture_region_size = Vector2i(32, 32) 4:4/0/terrain = 0 4:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) 6:4/0 = 0 +6:4/0/terrain_set = 0 +6:4/0/terrain = 0 6:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +6:4/0/terrains_peering_bit/right_side = 0 +6:4/0/terrains_peering_bit/bottom_right_corner = 0 +6:4/0/terrains_peering_bit/bottom_side = 0 +6:4/0/terrains_peering_bit/top_side = 0 7:4/0 = 0 +7:4/0/terrain_set = 0 +7:4/0/terrain = 0 7:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +7:4/0/terrains_peering_bit/bottom_side = 0 +7:4/0/terrains_peering_bit/bottom_left_corner = 0 +7:4/0/terrains_peering_bit/left_side = 0 +7:4/0/terrains_peering_bit/top_side = 0 9:4/0 = 0 +9:4/0/terrain_set = 0 +9:4/0/terrain = 0 9:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +9:4/0/terrains_peering_bit/right_side = 0 +9:4/0/terrains_peering_bit/left_side = 0 +9:4/0/terrains_peering_bit/top_left_corner = 0 +9:4/0/terrains_peering_bit/top_side = 0 10:4/0 = 0 +10:4/0/terrain_set = 0 +10:4/0/terrain = 0 10:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +10:4/0/terrains_peering_bit/right_side = 0 +10:4/0/terrains_peering_bit/left_side = 0 +10:4/0/terrains_peering_bit/top_side = 0 +10:4/0/terrains_peering_bit/top_right_corner = 0 12:4/0 = 0 +12:4/0/terrain_set = 0 +12:4/0/terrain = 0 12:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +12:4/0/terrains_peering_bit/right_side = 0 +12:4/0/terrains_peering_bit/left_side = 0 +12:4/0/terrains_peering_bit/top_side = 0 13:4/0 = 0 +13:4/0/terrain_set = 0 +13:4/0/terrain = 0 13:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +13:4/0/terrains_peering_bit/bottom_side = 0 +13:4/0/terrains_peering_bit/left_side = 0 +13:4/0/terrains_peering_bit/top_side = 0 15:4/0 = 0 +15:4/0/terrain_set = 0 +15:4/0/terrain = 0 15:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +15:4/0/terrains_peering_bit/right_side = 0 +15:4/0/terrains_peering_bit/top_side = 0 16:4/0 = 0 +16:4/0/terrain_set = 0 +16:4/0/terrain = 0 16:4/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16) +16:4/0/terrains_peering_bit/left_side = 0 +16:4/0/terrains_peering_bit/top_side = 0 [sub_resource type="TileSet" id="TileSet_gee14"] tile_size = Vector2i(32, 32) physics_layer_0/collision_layer = 2 -physics_layer_0/collision_mask = 5 +physics_layer_0/collision_mask = 13 terrain_set_0/mode = 0 -terrain_set_0/terrain_0/name = "Terrain 0" +terrain_set_0/terrain_0/name = "Main Terrain" terrain_set_0/terrain_0/color = Color(0.5, 0.34375, 0.25, 1) sources/1 = SubResource("TileSetAtlasSource_p57ef") @@ -234,7 +436,7 @@ script = ExtResource("2_iywne") [node name="TileMapLayer" type="TileMapLayer" parent="."] z_index = 10 position = Vector2(0, 1) -tile_map_data = PackedByteArray("AADy/wMAAQABAAAAAADy/wQAAQABAAIAAADz/wQAAQABAAIAAADz/wMAAQABAAAAAAD0/wMAAQABAAAAAAD0/wQAAQABAAIAAADx/wQAAQAAAAIAAADx/wMAAQAAAAAAAAD4/wMAAQABAAAAAAD4/wQAAQABAAIAAAD5/wQAAQABAAIAAAD6/wQAAQABAAIAAAD7/wQAAQABAAIAAAD8/wQAAQABAAIAAAD9/wQAAQABAAIAAAD+/wQAAQACAAIAAAD+/wMAAQACAAAAAAD9/wMAAQABAAAAAAD8/wMAAQABAAAAAAD7/wMAAQABAAAAAAD6/wMAAQABAAAAAAD5/wMAAQABAAAAAAABAAMAAQAAAAAAAAABAAQAAQAAAAEAAAABAAUAAQAAAAIAAAACAAUAAQABAAIAAAADAAUAAQABAAIAAAAEAAUAAQACAAIAAAAEAAQAAQACAAEAAAAEAAMAAQACAAAAAAADAAMAAQABAAAAAAACAAMAAQABAAAAAAACAAQAAQABAAEAAAADAAQAAQABAAEAAAD3/wMAAQABAAAAAAD2/wMAAQABAAAAAAD1/wMAAQABAAAAAAD1/wQAAQABAAIAAAD2/wQAAQABAAIAAAD3/wQAAQABAAIAAAAGAAIAAQAAAAAAAAAGAAMAAQAAAAEAAAAGAAQAAQAAAAEAAAAGAAUAAQAAAAIAAAAHAAUAAQABAAIAAAAIAAUAAQABAAIAAAAJAAUAAQABAAIAAAAKAAUAAQACAAIAAAAKAAQAAQACAAEAAAAKAAMAAQACAAEAAAAKAAIAAQACAAAAAAAJAAIAAQABAAAAAAAIAAIAAQABAAAAAAAHAAIAAQABAAAAAAAHAAMAAQABAAEAAAAHAAQAAQABAAEAAAAIAAQAAQABAAEAAAAJAAQAAQABAAEAAAAJAAMAAQABAAEAAAAIAAMAAQABAAEAAAAMAAEAAQAAAAAAAAAMAAIAAQAAAAEAAAAMAAMAAQAAAAEAAAAMAAQAAQAAAAEAAAANAAQAAQABAAEAAAANAAUAAQABAAIAAAAOAAUAAQABAAIAAAAPAAUAAQACAAIAAAAMAAUAAQAAAAIAAAANAAEAAQABAAAAAAAOAAEAAQABAAAAAAANAAIAAQABAAEAAAANAAMAAQABAAEAAAAOAAQAAQABAAEAAAAPAAQAAQACAAEAAAAPAAMAAQACAAEAAAAPAAIAAQACAAEAAAAPAAEAAQACAAAAAAAOAAIAAQABAAEAAAAOAAMAAQABAAEAAAARAAIAAQAAAAAAAAARAAMAAQAAAAEAAAARAAQAAQAAAAEAAAARAAUAAQAAAAIAAAASAAUAAQABAAIAAAATAAUAAQABAAIAAAAUAAUAAQABAAIAAAAVAAUAAQABAAIAAAAWAAUAAQACAAIAAAAWAAQAAQACAAEAAAAWAAMAAQACAAEAAAAVAAMAAQABAAEAAAAVAAIAAQABAAAAAAAUAAIAAQABAAAAAAATAAIAAQABAAAAAAASAAIAAQABAAAAAAASAAMAAQABAAEAAAASAAQAAQABAAEAAAATAAQAAQABAAEAAAAUAAQAAQABAAEAAAAUAAMAAQABAAEAAAATAAMAAQABAAEAAAAVAAQAAQABAAEAAAAWAAIAAQACAAAAAADz/wEAAQAAAAQAAAD0/wEAAQABAAQAAAD1/wEAAQABAAQAAAD2/wEAAQACAAQAAAD4//7/AQAAAAAAAAD5//7/AQABAAAAAAD6//7/AQABAAAAAAD7//7/AQACAAAAAAD9//v/AQAAAAAAAAD9//z/AQAAAAEAAAD9//3/AQAAAAIAAAD+//3/AQABAAIAAAD///3/AQABAAIAAAAAAP3/AQABAAIAAAAAAPz/AQABAAEAAAAAAPv/AQABAAAAAAD///v/AQABAAAAAAD+//v/AQABAAAAAAD+//z/AQABAAEAAAD///z/AQABAAEAAAABAPz/AQABAAEAAAACAPz/AQACAAEAAAACAP3/AQACAAIAAAABAP3/AQABAAIAAAABAPv/AQABAAAAAAACAPv/AQACAAAAAAD4////AQAAAAIAAAD5////AQABAAIAAAD6////AQABAAIAAAD7////AQACAAIAAAA=") +tile_map_data = PackedByteArray("AADy/wMAAQABAAEAAADy/wQAAQABAAIAAADz/wQAAQABAAIAAADz/wMAAQABAAEAAAD0/wMAAQABAAEAAAD0/wQAAQABAAIAAADx/wQAAQAAAAIAAADx/wMAAQAAAAEAAAD4/wMAAQABAAAAAAD4/wQAAQABAAIAAAD5/wQAAQABAAIAAAD6/wQAAQABAAIAAAD7/wQAAQABAAIAAAD8/wQAAQABAAIAAAD9/wQAAQABAAIAAAD+/wQAAQAHAAAAAAD+/wMAAQABAAAAAAD9/wMAAQABAAAAAAD8/wMAAQABAAAAAAD7/wMAAQABAAAAAAD6/wMAAQABAAAAAAD5/wMAAQABAAAAAAABAAMAAQABAAAAAAABAAQAAQABAAEAAAABAAUAAQABAAIAAAACAAUAAQABAAIAAAADAAUAAQABAAIAAAAEAAUAAQABAAIAAAAEAAQAAQAGAAEAAAAEAAMAAQACAAAAAAADAAMAAQABAAAAAAACAAMAAQABAAAAAAACAAQAAQABAAEAAAADAAQAAQABAAEAAAD3/wMAAQABAAAAAAD2/wMAAQAGAAEAAAD1/wMAAQABAAEAAAD1/wQAAQABAAIAAAD2/wQAAQABAAIAAAD3/wQAAQABAAIAAAAKAAIAAQABAAAAAAAJAAIAAQAAAAAAAAAJAAMAAQAAAAEAAAAMAAEAAQABAAAAAAAMAAIAAQABAAEAAAAMAAMAAQABAAEAAAAMAAQAAQABAAEAAAANAAQAAQABAAEAAAANAAUAAQABAAIAAAAOAAUAAQABAAIAAAAPAAUAAQABAAIAAAAMAAUAAQABAAIAAAANAAEAAQABAAAAAAAOAAEAAQABAAAAAAANAAIAAQABAAEAAAANAAMAAQABAAEAAAAOAAQAAQABAAEAAAAPAAQAAQABAAEAAAAPAAMAAQABAAEAAAAPAAIAAQAGAAEAAAAPAAEAAQACAAAAAAAOAAIAAQABAAEAAAAOAAMAAQABAAEAAAARAAIAAQABAAAAAAARAAMAAQABAAEAAAARAAQAAQABAAEAAAARAAUAAQABAAIAAAASAAUAAQABAAIAAAATAAUAAQABAAIAAAAUAAUAAQABAAIAAAAVAAUAAQABAAIAAAAWAAUAAQABAAIAAAAWAAQAAQABAAEAAAAWAAMAAQAGAAEAAAAVAAMAAQABAAEAAAAVAAIAAQABAAAAAAAUAAIAAQABAAAAAAATAAIAAQABAAAAAAASAAIAAQABAAAAAAASAAMAAQABAAEAAAASAAQAAQABAAEAAAATAAQAAQABAAEAAAAUAAQAAQABAAEAAAAUAAMAAQABAAEAAAATAAMAAQABAAEAAAAVAAQAAQABAAEAAAAWAAIAAQACAAAAAAD4//7/AQABAAQAAAD5//7/AQAKAAMAAAD6//7/AQAHAAEAAAD7//7/AQACAAEAAAD9//3/AQAKAAQAAAD+//3/AQABAAIAAAD///3/AQABAAIAAAAAAP3/AQABAAIAAAAAAPz/AQABAAAAAAD+//z/AQABAAAAAAD///z/AQABAAAAAAACAP3/AQACAAQAAAABAP3/AQAJAAQAAAD5////AQAAAAIAAAD6////AQABAAIAAAD7////AQACAAIAAADx////AQAAAAAAAADy////AQABAAAAAADz////AQACAAAAAADx/wAAAQAAAAEAAADx/wEAAQAAAAEAAADy/wEAAQABAAEAAADz/wEAAQAGAAEAAADz/wAAAQACAAEAAADy/wAAAQABAAEAAADx/wIAAQAAAAEAAADy/wIAAQABAAEAAADz/wIAAQABAAEAAAD0/wIAAQABAAEAAAD1/wIAAQAGAAEAAAD2/wIAAQACAAAAAAD3//7/AQAAAAQAAAD6//3/AQAAAAAAAAD7//3/AQAJAAMAAAABAPz/AQACAAAAAAD9//z/AQAAAAAAAAD8//3/AQABAAQAAAAHAAQAAQABAAAAAAAGAAQAAQABAAAAAAAFAAQAAQABAAAAAAALAAIAAQAHAAEAAAAQAAIAAQABAAAAAAAQAAMAAQABAAEAAAAQAAQAAQABAAEAAAAQAAUAAQABAAIAAAALAAMAAQABAAEAAAAKAAMAAQABAAEAAAAKAAQAAQABAAEAAAAKAAUAAQABAAIAAAAJAAUAAQABAAIAAAAJAAQAAQAHAAEAAAAIAAQAAQABAAAAAAAGAAUAAQABAAIAAAAFAAUAAQABAAIAAAAHAAUAAQABAAIAAAAIAAUAAQABAAIAAAALAAUAAQABAAIAAAALAAQAAQABAAEAAAAAAAQAAQABAAEAAAD//wQAAQABAAEAAAD+/wUAAQAAAAIAAAD//wUAAQABAAIAAAAAAAUAAQABAAIAAAD//wMAAQABAAAAAAAAAAMAAQABAAAAAAALAAEAAQAAAAAAAAD0/wEAAQABAAAAAAD1/wEAAQACAAAAAAALAPv/AQAAAAAAAAALAPz/AQAAAAEAAAALAP3/AQAAAAIAAAAMAPz/AQABAAEAAAANAPz/AQABAAEAAAAOAPz/AQABAAEAAAAOAPv/AQABAAAAAAANAPv/AQABAAAAAAAMAPv/AQABAAAAAAAMAP3/AQABAAIAAAANAP3/AQABAAIAAAAOAP3/AQABAAIAAAAPAPz/AQACAAEAAAAPAPv/AQACAAAAAAAPAP3/AQACAAIAAAAYAAMAAQACAAAAAAAXAAMAAQABAAAAAAAXAAQAAQABAAEAAAAXAAUAAQABAAIAAAAYAAUAAQACAAIAAAAYAAQAAQACAAEAAAAGAP3/AQAAAAQAAAAHAP3/AQACAAQAAAA=") tile_set = SubResource("TileSet_gee14") [node name="Background" type="Parallax2D" parent="."] @@ -263,13 +465,13 @@ texture = SubResource("NoiseTexture2D_iywne") z_index = 100 position = Vector2(-201, 51) -[node name="Boundary" type="StaticBody2D" parent="."] -position = Vector2(0, 180) +[node name="WorldBoundary" type="Area2D" parent="."] +position = Vector2(0, 360) collision_layer = 2 collision_mask = 5 metadata/_edit_group_ = true -[node name="CollisionShape2D" type="CollisionShape2D" parent="Boundary"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="WorldBoundary"] shape = SubResource("WorldBoundaryShape2D_8cj0n") debug_color = Color(0, 0.50980395, 0.003921569, 1) @@ -282,14 +484,15 @@ position = Vector2(532.00006, 62) scale = Vector2(0.5942757, 0.5465749) intent = "powerup" -[node name="Crate" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")] -position = Vector2(-78, 45) +[node name="LargeCrate" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")] +position = Vector2(-10, -211) -[node name="Crate2" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")] -position = Vector2(630, 9) +[node name="LargeCrate2" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")] +position = Vector2(436, -220) -[node name="Crate3" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")] -position = Vector2(269, 0) +[node name="LargeCrate3" parent="." groups=["explodable", "pushable"] instance=ExtResource("1_uwrxv")] +position = Vector2(669, -2) +[connection signal="body_entered" from="WorldBoundary" to="SceneManager" method="_on_world_boundary_body_entered"] [connection signal="trigger_fired" from="Trigger" to="." method="_on_trigger_fired"] [connection signal="trigger_fired" from="Trigger2" to="." method="_on_trigger_fired"] diff --git a/scenes/grenade.tscn b/scenes/grenade.tscn index 0dade6d..6394b0f 100644 --- a/scenes/grenade.tscn +++ b/scenes/grenade.tscn @@ -240,8 +240,9 @@ animations = [{ }] [node name="Grenade" type="RigidBody2D"] -collision_layer = 4 -collision_mask = 7 +collision_layer = 8 +collision_mask = 14 +mass = 0.001 contact_monitor = true max_contacts_reported = 2 script = ExtResource("1_cvyik") diff --git a/scenes/player.tscn b/scenes/player.tscn index 1fec3d2..d0a1724 100644 --- a/scenes/player.tscn +++ b/scenes/player.tscn @@ -313,7 +313,6 @@ animations = [{ [node name="Player" type="CharacterBody2D"] collision_mask = 6 script = ExtResource("1_3vyb7") -BUMP_POWER = 200 metadata/_edit_group_ = true [node name="CollisionShape2D" type="CollisionShape2D" parent="."] diff --git a/scripts/grenade.gd b/scripts/grenade.gd index 78591de..69c10a9 100644 --- a/scripts/grenade.gd +++ b/scripts/grenade.gd @@ -15,12 +15,15 @@ func _ready() -> void: func explode() -> void: print("kaboom!") + set_deferred("freeze", true) sprite_2d.visible = false animated_sprite_2d.play("explode") await animated_sprite_2d.animation_finished self.queue_free() func _on_body_entered(body: Node) -> void: + if body is Player: + print("grenade hit player") print("grenade hit something") if body.is_in_group("explodable"): body.queue_free() diff --git a/scripts/player.gd b/scripts/player.gd index 8ff1eb5..42bf3aa 100644 --- a/scripts/player.gd +++ b/scripts/player.gd @@ -3,14 +3,14 @@ class_name Player extends CharacterBody2D ## TODO: fix bullet cooldown timer const SPEED = 200.0 -const JUMP_VELOCITY = -350.0 +const JUMP_VELOCITY = -500.0 enum FaceDirection{LEFT, RIGHT} enum State{IDLE, WALK, JUMP, FALLING, SHOOT_STILL, SHOOT_RUN} @export var BUMP_POWER := 50 @export var SHOVE_POWER := 300 -@export var ACCELERATION := 4 +@export var ACCELERATION := 10 ## Amount of "slide-y-ness" in side-to-side-movement @export var HARD_GRAVITY := 2 var current_state: State = State.IDLE @@ -122,7 +122,7 @@ func handle_collisions() -> void: for i in get_slide_collision_count(): var c = get_slide_collision(i) - if c.get_collider() is RigidBody2D: + if c.get_collider() is RigidBody2D and c.get_collider() is not Grenade: c.get_collider().apply_central_impulse(-c.get_normal() * BUMP_POWER) if right_cast.is_colliding() and facing == FaceDirection.RIGHT: diff --git a/scripts/scene_manager.gd b/scripts/scene_manager.gd index 1378dfa..ae645d1 100644 --- a/scripts/scene_manager.gd +++ b/scripts/scene_manager.gd @@ -31,3 +31,9 @@ func bullet_factory() -> Bullet: my_bullet = bullet_array.pop_back() bullet_array.push_front(my_bullet) return my_bullet + + +func _on_world_boundary_body_entered(body: Node2D) -> void: + if body is Player: + var current_scene = get_tree() + current_scene.call_deferred("reload_current_scene")