From 5a7c93a5735a8bdee1b56acc5b9d78466827bae2 Mon Sep 17 00:00:00 2001 From: Michael Campbell Date: Wed, 18 Mar 2026 18:18:37 -0400 Subject: [PATCH] explosive car; dash no longer stuns or gives extra fire rate --- enemies/explosive_car/explosion.tscn | 91 +++++++++ enemies/explosive_car/explosive_car.tscn | 189 ++++++++++++++++++ .../explosive_car/explosive_car_behavior.gd | 18 ++ .../explosive_car_behavior.gd.uid | 1 + levels/level_0.tscn | 3 +- player/explosion/hit_area.gd | 2 + player/player.gd | 12 +- 7 files changed, 309 insertions(+), 7 deletions(-) create mode 100644 enemies/explosive_car/explosion.tscn create mode 100644 enemies/explosive_car/explosive_car.tscn create mode 100644 enemies/explosive_car/explosive_car_behavior.gd create mode 100644 enemies/explosive_car/explosive_car_behavior.gd.uid diff --git a/enemies/explosive_car/explosion.tscn b/enemies/explosive_car/explosion.tscn new file mode 100644 index 0000000..d3ce66a --- /dev/null +++ b/enemies/explosive_car/explosion.tscn @@ -0,0 +1,91 @@ +[gd_scene format=3 uid="uid://bmp481gbe4vcx"] + +[ext_resource type="Script" uid="uid://br3jskryab3if" path="res://player/explosion/hit_area.gd" id="1_0tlud"] + +[sub_resource type="SphereMesh" id="SphereMesh_5mksp"] +height = 0.5 +radial_segments = 8 +rings = 8 +is_hemisphere = true + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xpyis"] +transparency = 1 +blend_mode = 1 +shading_mode = 0 +albedo_color = Color(1, 0, 0, 0.48235294) + +[sub_resource type="SphereShape3D" id="SphereShape3D_xpyis"] +radius = 4.0949817 + +[sub_resource type="Animation" id="Animation_yr3g8"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Container:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_xpyis"] +resource_name = "explode" +length = 0.5 +step = 0.5 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Container:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.2, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(1, 1, 1), Vector3(0, 0, 0)] +} +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"queue_free" +}] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_120gr"] +_data = { +&"RESET": SubResource("Animation_yr3g8"), +&"explode": SubResource("Animation_xpyis") +} + +[node name="Explosion" type="Node3D" unique_id=702514359] + +[node name="Container" type="Node3D" parent="." unique_id=1035655414] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="Container" unique_id=509955843] +transform = Transform3D(7.6891003, 0, 0, 0, 7.6891003, 0, 0, 0, 7.6891003, 0, 0, 0) +mesh = SubResource("SphereMesh_5mksp") +surface_material_override/0 = SubResource("StandardMaterial3D_xpyis") + +[node name="HitArea" type="Area3D" parent="Container" unique_id=468568433] +collision_layer = 0 +collision_mask = 14 +script = ExtResource("1_0tlud") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Container/HitArea" unique_id=837356976] +shape = SubResource("SphereShape3D_xpyis") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=893547695] +libraries/ = SubResource("AnimationLibrary_120gr") +autoplay = &"explode" diff --git a/enemies/explosive_car/explosive_car.tscn b/enemies/explosive_car/explosive_car.tscn new file mode 100644 index 0000000..7b4e448 --- /dev/null +++ b/enemies/explosive_car/explosive_car.tscn @@ -0,0 +1,189 @@ +[gd_scene format=3 uid="uid://q5cxluytck2h"] + +[ext_resource type="PackedScene" uid="uid://oyqyvj5xo5mf" path="res://enemies/base_enemy.tscn" id="1_jdkrm"] +[ext_resource type="Script" uid="uid://btrksi0vamvst" path="res://enemies/explosive_car/explosive_car_behavior.gd" id="2_ofstr"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_jdkrm"] +size = Vector3(1.7734375, 0.5839844, 1.1367188) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ofstr"] +resource_local_to_scene = true +albedo_color = Color(1, 0.22000003, 0.22000003, 1) + +[sub_resource type="BoxMesh" id="BoxMesh_nf60p"] +size = Vector3(1, 0.25, 0.5) + +[sub_resource type="BoxMesh" id="BoxMesh_vj2gi"] +size = Vector3(0.1, 0.05, 0.2) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1o86t"] +albedo_color = Color(1, 0.32, 0.32, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_q2pip"] +albedo_color = Color(0.26, 0.45733315, 1, 1) + +[sub_resource type="CylinderMesh" id="CylinderMesh_6ocff"] +top_radius = 0.1 +bottom_radius = 0.1 +height = 0.5 + +[sub_resource type="BoxShape3D" id="BoxShape3D_ofstr"] +size = Vector3(1, 0.25, 0.5) + +[sub_resource type="Animation" id="Animation_jdkrm"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Meshes/MeshInstance3D6:material_override:albedo_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 0.22000003, 0.22000003, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:max_speed") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [8.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Meshes:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_ofstr"] +resource_name = "explode" +step = 0.1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Meshes/MeshInstance3D6:material_override:albedo_color") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1.2745606, 2.0705302), +"update": 0, +"values": [Color(1, 0.22000003, 0.22000003, 1), Color(1, 0.6, 0.6, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:max_speed") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(1.0000001, 0.46651652), +"update": 0, +"values": [8.0, 0.0] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Meshes:scale") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1), +"transitions": PackedFloat32Array(3.4822025, 0.24999988), +"update": 0, +"values": [Vector3(1, 1, 1), Vector3(2, 2, 2)] +} +tracks/3/type = "method" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("ExplosiveCarBehavior") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(1), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"_anim_explode" +}] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_nf60p"] +_data = { +&"RESET": SubResource("Animation_jdkrm"), +&"explode": SubResource("Animation_ofstr") +} + +[sub_resource type="BoxShape3D" id="BoxShape3D_nf60p"] +size = Vector3(11.374023, 1, 1) + +[node name="ExplosiveCar" unique_id=206023291 instance=ExtResource("1_jdkrm")] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Hurtbox" parent_id_path=PackedInt32Array(688205599) index="0" unique_id=1284368855] +transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -0.122092836, 0.34972915, -0.0012522953) +shape = SubResource("BoxShape3D_jdkrm") +debug_color = Color(0.9913104, 0, 0.27320355, 0.41960785) + +[node name="Meshes" type="Node3D" parent="." index="2" unique_id=754389420] + +[node name="MeshInstance3D6" type="MeshInstance3D" parent="Meshes" index="0" unique_id=394413961] +transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -0.122092836, 0.34972915, -0.0012522953) +material_override = SubResource("StandardMaterial3D_ofstr") +mesh = SubResource("BoxMesh_nf60p") + +[node name="MeshInstance3D7" type="MeshInstance3D" parent="Meshes" index="1" unique_id=118317787] +transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0.59585166, 0.65602696, 0.24429089) +mesh = SubResource("BoxMesh_vj2gi") +surface_material_override/0 = SubResource("StandardMaterial3D_1o86t") + +[node name="MeshInstance3D8" type="MeshInstance3D" parent="Meshes" index="2" unique_id=2028775812] +transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0.60364604, 0.65602696, -0.23176795) +mesh = SubResource("BoxMesh_vj2gi") +surface_material_override/0 = SubResource("StandardMaterial3D_q2pip") + +[node name="MeshInstance3D9" type="MeshInstance3D" parent="Meshes" index="3" unique_id=1459550134] +transform = Transform3D(2, 0, 0, 0, -8.742278e-08, -2, 0, 2, -8.742278e-08, -0.8505253, -0.079150766, -0.0012522853) +material_override = SubResource("StandardMaterial3D_ofstr") +mesh = SubResource("CylinderMesh_6ocff") + +[node name="MeshInstance3D10" type="MeshInstance3D" parent="Meshes" index="4" unique_id=380519514] +transform = Transform3D(2, 0, 0, 0, -8.742278e-08, -2, 0, 2, -8.742278e-08, 0.62777025, -0.079150766, -0.0012522853) +material_override = SubResource("StandardMaterial3D_ofstr") +mesh = SubResource("CylinderMesh_6ocff") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="3" unique_id=493184167] +transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -0.122092836, 0.34972915, -0.0012522953) +shape = SubResource("BoxShape3D_ofstr") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="4" unique_id=57061383] +unique_name_in_owner = true +libraries/ = SubResource("AnimationLibrary_nf60p") +speed_scale = 2.0 + +[node name="ExplosiveCarBehavior" type="Node3D" parent="." index="5" unique_id=61397067] +script = ExtResource("2_ofstr") + +[node name="Trigger" type="Area3D" parent="ExplosiveCarBehavior" index="0" unique_id=509352389] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="ExplosiveCarBehavior/Trigger" index="0" unique_id=146579196] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.25, 0, 0) +shape = SubResource("BoxShape3D_nf60p") + +[connection signal="body_entered" from="ExplosiveCarBehavior/Trigger" to="ExplosiveCarBehavior" method="_on_trigger_body_entered"] diff --git a/enemies/explosive_car/explosive_car_behavior.gd b/enemies/explosive_car/explosive_car_behavior.gd new file mode 100644 index 0000000..ec97002 --- /dev/null +++ b/enemies/explosive_car/explosive_car_behavior.gd @@ -0,0 +1,18 @@ +extends Node3D + +var exploding := false +@onready var anim: AnimationPlayer = %AnimationPlayer + +func _on_trigger_body_entered(_body: Node3D) -> void: + if exploding: return + anim.play("explode") + exploding = true + +func _anim_explode() -> void: + var scene := preload("res://enemies/explosive_car/explosion.tscn") + var explosion: Node3D = scene.instantiate() + explosion.global_position = global_position + explosion.scale *= 3. + get_tree().current_scene.add_child(explosion) + queue_free() + diff --git a/enemies/explosive_car/explosive_car_behavior.gd.uid b/enemies/explosive_car/explosive_car_behavior.gd.uid new file mode 100644 index 0000000..abd2b0a --- /dev/null +++ b/enemies/explosive_car/explosive_car_behavior.gd.uid @@ -0,0 +1 @@ +uid://btrksi0vamvst diff --git a/levels/level_0.tscn b/levels/level_0.tscn index b83478f..bc72158 100644 --- a/levels/level_0.tscn +++ b/levels/level_0.tscn @@ -8,6 +8,7 @@ [ext_resource type="PackedScene" uid="uid://dnl2jhf7rj33h" path="res://buildings/tree.tscn" id="5_foxie"] [ext_resource type="PackedScene" uid="uid://dusfu1hidkmsk" path="res://enemies/police_car/police_car.tscn" id="7_jum3j"] [ext_resource type="PackedScene" uid="uid://b7oinpdwh22ux" path="res://enemies/police_van/police_van.tscn" id="8_c4pne"] +[ext_resource type="PackedScene" uid="uid://q5cxluytck2h" path="res://enemies/explosive_car/explosive_car.tscn" id="9_tfamw"] [sub_resource type="NavigationMesh" id="NavigationMesh_7d3si"] vertices = PackedVector3Array(-23.05533, 0.41285276, -11.374023, -18.80533, 0.41285276, -11.124023, -18.55533, 0.41285276, -12.874023, -18.55533, 0.41285276, -19.124023, -18.80533, 0.41285276, -29.124023, -23.05533, 0.41285276, -50.874023, 25.44467, 0.41285276, -29.374023, 25.44467, 0.41285276, -35.624023, -18.80533, 0.41285276, -35.874023, -18.55533, 0.41285276, -45.874023, 25.19467, 0.41285276, -45.874023, 25.19467, 0.41285276, -50.874023, 25.44467, 0.41285276, -12.874023, 25.44467, 0.41285276, -19.124023, 27.44467, 0.41285276, -45.624023, 33.44467, 0.41285276, -50.874023, 0.9446697, 0.41285276, 56.375977, 6.6946697, 0.41285276, 56.625977, 6.9446697, 0.41285276, 54.875977, 6.9446697, 0.41285276, 48.625977, 6.6946697, 0.41285276, 38.625977, 66.94467, 0.41285276, 4.3759766, 68.94467, 0.41285276, 4.3759766, 68.94467, 0.41285276, -1.6240234, 27.44467, 0.41285276, -35.874023, 27.44467, 0.41285276, -29.124023, 56.94467, 0.41285276, 20.875977, 56.94467, 0.41285276, 14.625977, 6.9446697, 0.41285276, 14.625977, 6.6946697, 0.41285276, 21.125977, 27.44467, 0.41285276, -19.374023, 27.44467, 0.41285276, -12.624023, 27.19467, 0.41285276, -2.6240234, -0.5553303, 0.41285276, 3.3759766, 0.9446697, 0.41285276, 4.3759766, 6.6946697, 0.41285276, 4.6259766, 58.69467, 0.41285276, 4.3759766, 34.94467, 0.41285276, -1.6240234, 33.69467, 0.41285276, -2.3740234, 58.94467, 0.41285276, 6.3759766, 66.69467, 0.41285276, 6.3759766, 56.94467, 0.41285276, 38.375977, 56.94467, 0.41285276, 31.125977, 6.9446697, 0.41285276, 31.125977, -18.55533, 0.41285276, -2.6240234, -23.05533, 0.41285276, 3.3759766, 56.94467, 0.41285276, 54.875977, 56.94467, 0.41285276, 48.625977, 248.69467, 0.41285276, 111.12598, 248.19467, 0.41285276, 110.62598, 248.19467, 0.41285276, 110.87598, 170.19467, 0.41285276, 33.625977, 170.19467, 0.41285276, 34.875977, 170.44467, 0.41285276, 35.125977, 172.44467, 0.41285276, 34.625977, 234.44467, 0.41285276, 84.12598, 235.94467, 0.41285276, 84.87598, 236.44467, 0.41285276, 83.87598, 233.69467, 0.41285276, 78.87598, 250.69467, 0.41285276, 112.62598, 250.94467, 0.41285276, 113.62598, 252.44467, 0.41285276, 113.87598, 198.44467, 0.41285276, 34.875977, 200.69467, 0.41285276, 39.875977, 201.69467, 0.41285276, 38.875977, 209.69467, 0.41285276, 30.625977, 205.69467, 0.41285276, 27.875977, 204.94467, 0.41285276, 27.875977, 173.44467, 0.41285276, 36.125977, 175.19467, 0.41285276, 35.625977, 174.44467, 0.41285276, 33.875977, 258.44467, 0.41285276, 81.12598, 277.94467, 0.41285276, 61.875977, 274.44467, 0.41285276, 58.375977, 255.19467, 0.41285276, 77.87598, 249.94467, 0.41285276, 111.12598, 253.44467, 0.41285276, 112.87598, 260.69467, 0.41285276, 97.87598, 256.69467, 0.41285276, 95.62598, 255.69467, 0.41285276, 95.62598, 248.19467, 0.41285276, 104.12598, 259.69467, 0.41285276, 98.87598, 225.69467, 0.41285276, 79.62598, 228.44467, 0.41285276, 79.87598, 228.69467, 0.41285276, 79.37598, 218.19467, 0.41285276, 75.62598, 220.44467, 0.41285276, 76.37598, 220.94467, 0.41285276, 74.37598, 170.94467, 0.41285276, 30.875977, 168.19467, 0.41285276, 29.625977, 167.94467, 0.41285276, 29.875977, 214.69467, 0.41285276, 3.8759766, 204.94467, 0.41285276, 8.625977, 204.94467, 0.41285276, 9.625977, 218.94467, 0.41285276, 71.87598, 222.44467, 0.41285276, 73.37598, 198.44467, 0.41285276, 20.125977, 196.19467, 0.41285276, 18.375977, 223.94467, 0.41285276, 73.37598, 225.69467, 0.41285276, 74.87598, 253.44467, 0.41285276, 35.875977, 251.19467, 0.41285276, 33.625977, 232.19467, 0.41285276, 52.875977, 233.94467, 0.41285276, 55.125977, 172.19467, 0.41285276, 30.875977, 217.44467, 0.41285276, 66.62598, 215.94467, 0.41285276, 66.62598, 215.19467, 0.41285276, 69.37598, 176.44467, 0.41285276, 29.625977, 176.69467, 0.41285276, 27.375977, 173.94467, 0.41285276, 26.875977, 176.94467, 0.41285276, 30.125977, 233.94467, 0.41285276, 55.875977, 230.94467, 0.41285276, 52.875977, 213.94467, 0.41285276, 50.375977, 257.44467, 0.41285276, 93.87598, 245.69467, 0.41285276, 69.12598, 197.94467, 0.41285276, -1.6240234, 197.94467, 0.41285276, 2.1259766, 198.44467, 0.41285276, 2.1259766, 219.19467, 0.41285276, 70.12598, 220.69467, 0.41285276, 66.62598, 229.19467, 0.41285276, 11.375977, 226.19467, 0.41285276, 7.3759766, 240.94467, 0.41285276, 89.37598, 239.94467, 0.41285276, 90.12598, 239.69467, 0.41285276, 103.62598, 219.19467, 0.41285276, 62.875977, 210.19467, 0.41285276, 58.875977, 213.69467, 0.41285276, 60.625977, 214.19467, 0.41285276, 59.875977, 185.69467, 0.41285276, 29.625977, 182.19467, 0.41285276, 29.625977, 181.69467, 0.41285276, 31.125977, 181.69467, 0.41285276, 35.125977, 185.94467, 0.41285276, 34.125977, 229.94467, 0.41285276, 79.12598, 257.19467, 0.41285276, 111.87598, 257.69467, 0.41285276, 109.62598, 254.94467, 0.41285276, 108.12598, 252.69467, 0.41285276, 108.12598, 195.44467, 0.41285276, 18.375977, 198.44467, 0.41285276, 21.375977, 185.44467, 0.41285276, 53.875977, 188.94467, 0.41285276, 53.875977, 189.44467, 0.41285276, 51.875977, 184.44467, 0.41285276, 49.375977, 258.19467, 0.41285276, 103.37598, 261.19467, 0.41285276, 105.12598, 262.69467, 0.41285276, 102.62598, 259.69467, 0.41285276, 99.62598, 258.44467, 0.41285276, 82.12598, 254.44467, 0.41285276, 77.87598, 267.44467, 0.41285276, 92.62598, 261.44467, 0.41285276, 97.87598, 276.19467, 0.41285276, 101.37598, 198.44467, 0.41285276, 35.875977, 199.69467, 0.41285276, 44.875977, 200.69467, 0.41285276, 40.875977, 178.19467, 0.41285276, 31.375977, 179.44467, 0.41285276, 31.375977, 257.44467, 0.41285276, 94.87598, 249.44467, 0.41285276, 104.12598, 256.69467, 0.41285276, 103.62598, 280.94467, 0.41285276, 103.62598, 299.69467, 0.41285276, 84.87598, 296.19467, 0.41285276, 81.87598, 276.94467, 0.41285276, 101.37598, 214.94467, 0.41285276, 59.875977, 209.44467, 0.41285276, 56.375977, 219.19467, 0.41285276, 61.875977, 225.69467, 0.41285276, 68.62598, 186.69467, 0.41285276, 9.375977, 176.19467, 0.41285276, 12.625977, 252.69467, 0.41285276, 107.12598, 254.94467, 0.41285276, 106.87598, 208.19467, 0.41285276, 54.375977, 265.19467, 0.41285276, 48.875977, 262.94467, 0.41285276, 45.125977, 243.69467, 0.41285276, 64.62598, 245.69467, 0.41285276, 68.12598, 181.69467, 0.41285276, 35.875977, 225.69467, 0.41285276, 69.62598, 197.69467, 0.41285276, 36.625977, 197.94467, 0.41285276, 44.625977, 224.94467, 0.41285276, 46.875977, 194.19467, 0.41285276, 52.375977, 194.94467, 0.41285276, 50.375977, 194.19467, 0.41285276, 45.625977, 180.69467, 0.41285276, 36.625977, 180.94467, 0.41285276, 49.875977, 196.44467, 0.41285276, 36.625977, 190.69467, 0.41285276, 34.125977, 240.44467, 0.41285276, 103.87598, 241.69467, 0.41285276, 107.87598, 245.44467, 0.41285276, 107.62598, 191.19467, 0.41285276, 31.125977, 238.19467, 0.41285276, 83.87598, 280.94467, 0.41285276, 104.62598, 267.44467, 0.41285276, 91.62598, 264.94467, 0.41285276, 88.62598, 250.44467, 0.41285276, 90.12598, 249.94467, 0.41285276, 90.12598, 200.44467, 0.41285276, 48.375977, 200.19467, 0.41285276, 49.875977, 203.69467, 0.41285276, 55.875977, 286.94467, 0.41285276, 72.37598, 284.94467, 0.41285276, 69.62598, 265.94467, 0.41285276, 88.62598, 282.44467, 0.41285276, 119.12598, 283.19467, 0.41285276, 119.37598, 289.44467, 0.41285276, 113.12598, 241.69467, 0.41285276, 84.87598, 204.44467, 0.41285276, 40.875977, 212.19467, 0.41285276, 34.125977, 209.69467, 0.41285276, 31.625977, 202.44467, 0.41285276, 38.875977, 242.69467, 0.41285276, 64.62598, 214.69467, 0.41285276, -1.8740234, 216.44467, 0.41285276, 3.3759766, 217.69467, 0.41285276, 4.8759766, 218.19467, 0.41285276, 4.8759766, 219.44467, 0.41285276, 3.3759766, 220.69467, 0.41285276, 3.3759766, 221.94467, 0.41285276, 4.8759766, 222.44467, 0.41285276, 4.8759766, 336.19467, 0.41285276, 78.12598, 334.69467, 0.41285276, 79.37598, 334.69467, 0.41285276, 79.87598, 336.19467, 0.41285276, 81.12598, 336.19467, 0.41285276, 82.37598, 334.69467, 0.41285276, 83.62598, 334.69467, 0.41285276, 84.12598, 336.19467, 0.41285276, 85.37598, 336.19467, 0.41285276, 86.62598, 334.69467, 0.41285276, 87.87598, 334.69467, 0.41285276, 88.37598, 336.19467, 0.41285276, 89.62598, 340.94467, 0.41285276, 91.62598, 341.44467, 0.41285276, 91.62598, 295.19467, 0.41285276, 1.8759766, 296.44467, 0.41285276, 3.3759766, 296.94467, 0.41285276, 3.3759766, 298.19467, 0.41285276, 1.8759766, 294.69467, 0.41285276, -1.8740234, 337.69467, 0.41285276, 30.375977, 336.19467, 0.41285276, 31.625977, 336.19467, 0.41285276, 32.125977, 337.69467, 0.41285276, 33.375977, 337.69467, 0.41285276, 34.625977, 336.19467, 0.41285276, 35.875977, 336.19467, 0.41285276, 36.375977, 337.69467, 0.41285276, 37.625977, 309.44467, 0.41285276, 3.3759766, 310.94467, 0.41285276, 5.1259766, 311.44467, 0.41285276, 5.1259766, 312.94467, 0.41285276, 3.3759766, 281.69467, 0.41285276, 58.875977, 281.69467, 0.41285276, 57.875977, 278.69467, 0.41285276, 54.375977, 277.44467, 0.41285276, 54.375977, 223.69467, 0.41285276, 3.3759766, 311.44467, 0.41285276, 41.125977, 313.44467, 0.41285276, 43.875977, 332.44467, 0.41285276, 24.875977, 330.94467, 0.41285276, 21.875977, 299.44467, 0.41285276, 1.8759766, 313.69467, 0.41285276, 3.3759766, 319.44467, 0.41285276, -1.8740234, 308.69467, 0.41285276, 3.3759766, 301.44467, 0.41285276, 3.8759766, 301.44467, 0.41285276, 5.1259766, 333.94467, 0.41285276, 66.37598, 331.69467, 0.41285276, 68.37598, 332.44467, 0.41285276, 69.12598, 334.94467, 0.41285276, 66.37598, 337.19467, 0.41285276, 51.375977, 335.44467, 0.41285276, 52.875977, 337.19467, 0.41285276, 54.625977, 337.19467, 0.41285276, 55.625977, 335.44467, 0.41285276, 57.125977, 337.19467, 0.41285276, 58.875977, 337.19467, 0.41285276, 59.875977, 335.44467, 0.41285276, 61.375977, 337.19467, 0.41285276, 63.125977, 238.44467, 0.41285276, 2.3759766, 239.94467, 0.41285276, 4.1259766, 241.69467, 0.41285276, 2.3759766, 320.19467, 0.41285276, 9.875977, 287.44467, 0.41285276, 72.37598, 285.19467, 0.41285276, 68.62598, 233.19467, 0.41285276, 6.6259766, 237.44467, 0.41285276, 2.3759766, 224.94467, 0.41285276, 3.3759766, 227.19467, 0.41285276, 5.6259766, 242.69467, 0.41285276, 2.3759766, 244.19467, 0.41285276, 4.1259766, 246.44467, 0.41285276, 2.3759766, 246.44467, 0.41285276, -1.8740234, 294.69467, 0.41285276, 1.8759766, 290.94467, 0.41285276, 68.12598, 288.94467, 0.41285276, 65.37598, 288.19467, 0.41285276, 65.37598, 290.69467, 0.41285276, 69.37598, 251.19467, 0.41285276, 32.625977, 254.44467, 0.41285276, 35.875977, 254.69467, 0.41285276, 28.875977, 253.69467, 0.41285276, 28.875977, 303.44467, 0.41285276, 80.62598, 303.44467, 0.41285276, 80.12598, 300.19467, 0.41285276, 77.87598, 288.44467, 0.41285276, 25.625977, 286.19467, 0.41285276, 21.875977, 266.94467, 0.41285276, 41.375977, 268.94467, 0.41285276, 44.875977, 244.94467, 0.41285276, 19.375977, 242.44467, 0.41285276, 16.375977, 241.69467, 0.41285276, 16.375977, 244.94467, 0.41285276, 20.125977, 332.44467, 0.41285276, 70.12598, 334.19467, 0.41285276, 74.87598, 336.19467, 0.41285276, 76.87598, 337.19467, 0.41285276, 64.12598, 340.44467, 0.41285276, 20.625977, 265.69467, 0.41285276, 48.875977, 262.94467, 0.41285276, 44.375977, 257.44467, 0.41285276, 32.625977, 332.69467, 0.41285276, 43.875977, 334.19467, 0.41285276, 48.125977, 334.94467, 0.41285276, 48.125977, 238.44467, 0.41285276, 19.875977, 238.44467, 0.41285276, 21.125977, 242.69467, 0.41285276, 24.125977, 299.19467, 0.41285276, 77.87598, 301.19467, 0.41285276, 84.37598, 312.19467, 0.41285276, 89.37598, 296.19467, 0.41285276, 81.12598, 337.69467, 0.41285276, 38.875977, 309.69467, 0.41285276, 94.12598, 291.19467, 0.41285276, 112.62598, 295.44467, 0.41285276, 114.12598, 312.44467, 0.41285276, 96.87598, 215.19467, 0.41285276, 3.3759766, 278.44467, 0.41285276, 61.875977, 274.44467, 0.41285276, 57.625977, 227.19467, 0.41285276, 6.3759766, 320.19467, 0.41285276, 10.875977, 323.69467, 0.41285276, 14.375977, 324.44467, 0.41285276, 14.375977, 233.19467, 0.41285276, 7.8759766, 229.94467, 0.41285276, 11.375977, 301.19467, 0.41285276, 38.625977, 297.69467, 0.41285276, 35.125977, 313.19467, 0.41285276, 89.37598, 315.94467, 0.41285276, 91.87598, 332.94467, 0.41285276, 74.87598, 337.69467, 0.41285276, 29.125977, 337.19467, 0.41285276, 50.375977, 222.44467, 0.41285276, 44.375977, 330.94467, 0.41285276, 20.875977, 333.44467, 0.41285276, 24.875977, 218.19467, 0.41285276, 40.125977, 222.44467, 0.41285276, 43.375977, 219.44467, 0.41285276, 40.125977, 313.69467, 0.41285276, 96.87598, 321.69467, 0.41285276, 104.87598, 324.94467, 0.41285276, 101.62598, 315.94467, 0.41285276, 92.87598, 241.69467, 0.41285276, 24.125977, 309.69467, 0.41285276, 92.87598, 257.44467, 0.41285276, 31.625977, 276.94467, 0.41285276, 12.375977, 273.94467, 0.41285276, 9.375977, 268.94467, 0.41285276, 45.875977, 266.19467, 0.41285276, 41.375977, 325.44467, 0.41285276, 101.62598, 326.94467, 0.41285276, 105.87598, 340.44467, 0.41285276, 92.62598, 336.19467, 0.41285276, 90.87598, 288.69467, 0.41285276, 17.875977, 291.44467, 0.41285276, 20.625977, 286.69467, 0.41285276, 1.8759766, 287.94467, 0.41285276, 3.3759766, 288.44467, 0.41285276, 3.3759766, 289.69467, 0.41285276, 1.8759766, 290.94467, 0.41285276, 1.8759766, 292.19467, 0.41285276, 3.3759766, 292.69467, 0.41285276, 3.3759766, 293.94467, 0.41285276, 1.8759766, 262.94467, 0.41285276, 2.1259766, 264.44467, 0.41285276, 3.8759766, 264.94467, 0.41285276, 3.8759766, 266.44467, 0.41285276, 2.1259766, 253.44467, 0.41285276, 4.6259766, 253.44467, 0.41285276, 5.6259766, 262.19467, 0.41285276, 2.1259766, 286.19467, 0.41285276, 21.125977, 299.94467, 0.41285276, 30.125977, 291.44467, 0.41285276, 21.625977, 246.94467, 0.41285276, 2.3759766, 248.44467, 0.41285276, 4.1259766, 250.19467, 0.41285276, 2.3759766, 251.19467, 0.41285276, 2.3759766, 310.69467, 0.41285276, 41.125977, 313.19467, 0.41285276, 45.125977, 279.19467, 0.41285276, 8.125977, 273.94467, 0.41285276, 8.875977, 277.44467, 0.41285276, 12.375977, 279.19467, 0.41285276, 9.375977, 287.69467, 0.41285276, 17.875977, 319.69467, 0.41285276, 57.875977, 322.69467, 0.41285276, 60.625977, 321.69467, 0.41285276, 53.625977, 308.44467, 0.41285276, 45.125977, 310.94467, 0.41285276, 49.125977, 289.19467, 0.41285276, 25.625977, 309.94467, 0.41285276, 49.125977, 308.44467, 0.41285276, 46.125977, 267.19467, 0.41285276, 2.1259766, 285.44467, 0.41285276, 1.8759766, 301.19467, 0.41285276, 30.125977, 304.19467, 0.41285276, 33.625977, 301.94467, 0.41285276, 38.625977, 297.69467, 0.41285276, 34.125977, 319.69467, 0.41285276, 58.625977, 323.94467, 0.41285276, 60.625977, 325.44467, 0.41285276, 57.875977, 325.44467, 0.41285276, 56.625977, 322.94467, 0.41285276, 53.625977, 304.19467, 0.41285276, 34.625977, 194.19467, 0.41285276, 2.1259766, 195.69467, 0.41285276, 3.8759766, 163.69467, 0.41285276, 11.625977, 160.94467, 0.41285276, 11.625977, 160.69467, 0.41285276, 14.625977, 148.69467, 0.41285276, 28.125977, 145.94467, 0.41285276, 28.125977, 145.69467, 0.41285276, 31.125977, 130.69467, 0.41285276, 45.625977, 127.94467, 0.41285276, 45.625977, 127.69467, 0.41285276, 48.625977, 135.69467, 0.41285276, 51.125977, 115.69467, 0.41285276, 62.125977, 112.94467, 0.41285276, 62.125977, 112.69467, 0.41285276, 65.12598, 103.94467, 0.41285276, 75.87598, 100.94467, 0.41285276, 76.12598, 100.94467, 0.41285276, 78.87598, 105.19467, 0.41285276, 80.87598, 108.69467, 0.41285276, 77.37598, 166.94467, 0.41285276, 8.375977, 163.94467, 0.41285276, 8.625977, 151.94467, 0.41285276, 24.875977, 148.94467, 0.41285276, 25.125977, 133.94467, 0.41285276, 42.375977, 130.94467, 0.41285276, 42.625977, 118.94467, 0.41285276, 58.875977, 115.94467, 0.41285276, 59.125977, 130.44467, 0.41285276, 57.125977, 131.19467, 0.41285276, 58.125977, 134.69467, 0.41285276, 54.875977, 133.44467, 0.41285276, 53.875977, 174.69467, 0.41285276, 12.125977, 118.94467, 0.41285276, 55.125977, 133.44467, 0.41285276, 52.875977, 68.69467, 0.41285276, 48.625977, 68.69467, 0.41285276, 54.875977, 193.19467, 0.41285276, 2.1259766, 166.94467, 0.41285276, 4.6259766, 129.19467, 0.41285276, 57.125977, 109.19467, 0.41285276, 77.37598, 103.94467, 0.41285276, 72.12598, 133.94467, 0.41285276, 38.625977, 150.44467, 0.41285276, 14.625977, 150.19467, 0.41285276, 20.875977, 151.94467, 0.41285276, 21.125977, 102.44467, 0.41285276, 65.12598, 102.19467, 0.41285276, 71.87598, 186.69467, 0.41285276, 8.625977, 68.69467, 0.41285276, 31.125977, 68.69467, 0.41285276, 38.375977, 58.94467, 0.41285276, 14.375977, 58.94467, 0.41285276, 21.125977, 66.94467, 0.41285276, 14.625977, 58.94467, 0.41285276, 55.125977, 58.94467, 0.41285276, 64.87598, 66.69467, 0.41285276, 72.12598, 58.94467, 0.41285276, 48.375977, 87.19467, 0.41285276, 88.37598, 87.44467, 0.41285276, 82.12598, 66.94467, 0.41285276, 82.12598, 66.94467, 0.41285276, 88.37598, 66.69467, 0.41285276, 55.125977, 66.69467, 0.41285276, 48.375977, 58.94467, 0.41285276, 30.875977, 56.94467, 0.41285276, 65.12598, 56.94467, 0.41285276, 71.87598, 58.94467, 0.41285276, 72.12598, 58.94467, 0.41285276, 38.625977, 56.94467, 0.41285276, 82.12598, 56.94467, 0.41285276, 89.37598, 58.69467, 0.41285276, 89.37598, 58.94467, 0.41285276, 81.87598, 66.69467, 0.41285276, 38.625977, 66.69467, 0.41285276, 30.875977, 66.94467, 0.41285276, 20.875977, 58.94467, 0.41285276, 91.12598, 66.69467, 0.41285276, 90.87598, 66.94467, 0.41285276, 65.12598, 156.44467, 0.41285276, 57.375977, 155.94467, 0.41285276, 57.625977, 156.19467, 0.41285276, 58.125977, 161.19467, 0.41285276, 59.375977, 167.19467, 0.41285276, 28.875977, 166.94467, 0.41285276, 29.875977, 146.19467, 0.41285276, 43.875977, 151.44467, 0.41285276, 43.875977, 151.44467, 0.41285276, 42.875977, 151.44467, 0.41285276, 52.125977, 150.94467, 0.41285276, 53.875977, 151.44467, 0.41285276, 54.125977, 152.69467, 0.41285276, 51.125977, 160.69467, 0.41285276, 63.375977, 163.44467, 0.41285276, 76.62598, 165.94467, 0.41285276, 39.625977, 166.19467, 0.41285276, 40.125977, 167.94467, 0.41285276, 38.625977, 167.19467, 0.41285276, 27.625977, 163.69467, 0.41285276, 31.625977, 172.44467, 0.41285276, 82.62598, 170.69467, 0.41285276, 82.87598, 170.69467, 0.41285276, 84.37598, 173.69467, 0.41285276, 84.12598, 167.69467, 0.41285276, 77.12598, 172.44467, 0.41285276, 77.37598, 172.94467, 0.41285276, 79.87598, 179.19467, 0.41285276, 51.125977, 165.94467, 0.41285276, 51.375977, 165.44467, 0.41285276, 52.875977, 173.44467, 0.41285276, 78.37598, 187.44467, 0.41285276, 64.12598, 185.44467, 0.41285276, 64.87598, 185.19467, 0.41285276, 66.12598, 191.19467, 0.41285276, 66.87598, 167.69467, 0.41285276, 36.875977, 166.69467, 0.41285276, 36.875977, 154.19467, 0.41285276, 51.125977, 157.19467, 0.41285276, 52.125977, 153.44467, 0.41285276, 47.875977, 165.44467, 0.41285276, 36.875977, 160.94467, 0.41285276, 39.375977, 178.44467, 0.41285276, 78.62598, 191.94467, 0.41285276, 75.62598, 191.19467, 0.41285276, 75.12598, 193.69467, 0.41285276, 70.12598, 195.69467, 0.41285276, 70.87598, 196.19467, 0.41285276, 67.62598, 195.19467, 0.41285276, 67.37598, 191.19467, 0.41285276, 74.12598, 181.94467, 0.41285276, 67.87598, 180.44467, 0.41285276, 67.62598, 178.19467, 0.41285276, 77.87598, 173.44467, 0.41285276, 25.625977, 177.69467, 0.41285276, 24.625977, 185.94467, 0.41285276, 28.625977, 182.94467, 0.41285276, 26.875977, 182.44467, 0.41285276, 25.625977, 175.44467, 0.41285276, 15.375977, 195.69467, 0.41285276, 63.625977, 194.69467, 0.41285276, 63.125977, 192.19467, 0.41285276, 66.87598, 178.69467, 0.41285276, 64.37598, 178.69467, 0.41285276, 62.875977, 192.19467, 0.41285276, 70.62598, 179.94467, 0.41285276, 55.125977, 163.44467, 0.41285276, 55.625977, 154.94467, 0.41285276, 41.125977, 163.19467, 0.41285276, 32.875977, 160.19467, 0.41285276, 64.37598, 159.69467, 0.41285276, 64.37598, 159.94467, 0.41285276, 76.62598, 148.44467, 0.41285276, 49.625977, 163.94467, 0.41285276, 80.12598, 167.19467, 0.41285276, 80.37598, 168.94467, 0.41285276, 24.125977, 170.19467, 0.41285276, 24.125977, 174.94467, 0.41285276, 15.375977, 156.44467, 0.41285276, 41.125977, 157.94467, 0.41285276, 44.375977, 160.19467, 0.41285276, 44.125977, 157.69467, 0.41285276, 53.625977, 161.69467, 0.41285276, 55.125977, 158.94467, 0.41285276, 53.125977, 182.44467, 0.41285276, 60.875977, 182.44467, 0.41285276, 55.375977, 180.44467, 0.41285276, 55.625977, 158.94467, 0.41285276, 52.125977, 161.19467, 0.41285276, 48.875977, 157.69467, 0.41285276, 46.375977, 154.69467, 0.41285276, 47.875977, 147.44467, 0.41285276, 49.375977, 188.44467, 0.41285276, 28.375977, 160.44467, 0.41285276, 44.625977, 174.69467, 0.41285276, 38.125977, 176.69467, 0.41285276, 38.375977, 177.69467, 0.41285276, 38.375977, 179.44467, 0.41285276, 50.125977, 174.69467, 0.41285276, 39.125977, 158.19467, 0.41285276, 46.125977, 161.69467, 0.41285276, 44.875977, 170.94467, 0.41285276, 41.625977, 169.69467, 0.41285276, 41.375977, 165.69467, 0.41285276, 45.125977, 161.44467, 0.41285276, 48.375977, 165.19467, 0.41285276, 50.125977, 163.19467, 0.41285276, 48.875977, 155.69467, 0.41285276, 58.375977, 151.69467, 0.41285276, 56.625977, 148.69467, 0.41285276, 56.625977, 84.94467, 0.41285276, 111.62598, 86.69467, 0.41285276, 110.12598, 86.19467, 0.41285276, 109.87598, 84.19467, 0.41285276, 110.62598, 147.69467, 0.41285276, 56.625977, 144.44467, 0.41285276, 54.125977, 135.19467, 0.41285276, 54.875977, 146.69467, 0.41285276, 60.125977, 151.19467, 0.41285276, 56.125977, 79.69467, 0.41285276, 101.62598, 76.69467, 0.41285276, 104.62598, 66.69467, 0.41285276, 119.12598, 130.69467, 0.41285276, 81.12598, 131.69467, 0.41285276, 80.87598, 131.94467, 0.41285276, 78.87598, 128.19467, 0.41285276, 78.12598, 129.44467, 0.41285276, 72.87598, 129.44467, 0.41285276, 70.37598, 128.94467, 0.41285276, 70.12598, 128.69467, 0.41285276, 73.37598, 151.69467, 0.41285276, 65.37598, 158.44467, 0.41285276, 77.37598, 158.69467, 0.41285276, 76.87598, 152.19467, 0.41285276, 65.12598, 119.94467, 0.41285276, 73.62598, 119.94467, 0.41285276, 70.12598, 119.44467, 0.41285276, 70.12598, 113.69467, 0.41285276, 75.87598, 117.19467, 0.41285276, 76.37598, 133.94467, 0.41285276, 64.87598, 134.44467, 0.41285276, 65.62598, 146.94467, 0.41285276, 65.12598, 131.19467, 0.41285276, 58.875977, 89.19467, 0.41285276, 104.37598, 91.44467, 0.41285276, 104.62598, 92.94467, 0.41285276, 102.87598, 92.69467, 0.41285276, 100.37598, 85.69467, 0.41285276, 95.62598, 82.94467, 0.41285276, 95.62598, 82.69467, 0.41285276, 98.62598, 79.94467, 0.41285276, 98.62598, 76.94467, 0.41285276, 101.62598, 73.94467, 0.41285276, 104.62598, 73.69467, 0.41285276, 107.62598, 70.94467, 0.41285276, 107.62598, 70.69467, 0.41285276, 110.62598, 97.94467, 0.41285276, 79.12598, 97.69467, 0.41285276, 82.12598, 101.94467, 0.41285276, 84.12598, 88.94467, 0.41285276, 92.37598, 85.94467, 0.41285276, 92.62598, 154.94467, 0.41285276, 63.375977, 129.19467, 0.41285276, 64.87598, 125.19467, 0.41285276, 68.62598, 125.19467, 0.41285276, 73.62598, 102.69467, 0.41285276, 85.87598, 99.69467, 0.41285276, 89.87598, 98.44467, 0.41285276, 97.62598, 98.69467, 0.41285276, 98.12598, 111.19467, 0.41285276, 93.87598, 111.19467, 0.41285276, 88.62598, 101.94467, 0.41285276, 85.12598, 80.69467, 0.41285276, 108.62598, 85.69467, 0.41285276, 105.12598, 93.19467, 0.41285276, 97.37598, 116.69467, 0.41285276, 81.62598, 111.94467, 0.41285276, 81.62598, 103.94467, 0.41285276, 85.87598, 88.94467, 0.41285276, 88.62598, 97.94467, 0.41285276, 88.12598, 50.19467, 0.41285276, 116.12598, 49.94467, 0.41285276, 121.37598, 52.69467, 0.41285276, 121.87598, 68.94467, 0.41285276, 126.37598, 68.94467, 0.41285276, 120.37598, 66.94467, 0.41285276, 120.37598, 62.19467, 0.41285276, 126.37598, 129.44467, 0.41285276, 84.62598, 124.19467, 0.41285276, 80.12598, 124.94467, 0.41285276, 84.62598, 98.69467, 0.41285276, 88.12598, 99.69467, 0.41285276, 89.12598, 58.94467, 0.41285276, 99.37598, 56.94467, 0.41285276, 99.62598, 56.94467, 0.41285276, 105.87598, 58.94467, 0.41285276, 106.12598, 66.69467, 0.41285276, 110.37598, 58.94467, 0.41285276, 115.87598, 151.94467, 0.41285276, 59.625977, 117.19467, 0.41285276, 80.62598, 120.94467, 0.41285276, 80.12598, 116.19467, 0.41285276, 88.62598, 119.69467, 0.41285276, 85.62598, 118.94467, 0.41285276, 80.87598, 144.69467, 0.41285276, 52.375977, 111.44467, 0.41285276, 78.12598, 121.94467, 0.41285276, 67.87598, 111.69467, 0.41285276, 94.12598, 194.69467, 0.41285276, 62.375977, 195.94467, 0.41285276, 62.125977, 203.19467, 0.41285276, 57.125977, 210.69467, 0.41285276, 83.37598, 212.19467, 0.41285276, 84.87598, 212.69467, 0.41285276, 83.37598, 210.94467, 0.41285276, 82.12598, 200.94467, 0.41285276, 62.625977, 207.69467, 0.41285276, 65.87598, 208.44467, 0.41285276, 65.87598, 205.19467, 0.41285276, 61.125977, 209.94467, 0.41285276, 83.37598, 223.69467, 0.41285276, 107.62598, 224.94467, 0.41285276, 108.62598, 225.69467, 0.41285276, 107.62598, 227.69467, 0.41285276, 102.87598, 193.94467, 0.41285276, 61.625977, 218.19467, 0.41285276, 81.12598, 216.19467, 0.41285276, 83.62598, 218.94467, 0.41285276, 83.12598, 194.69467, 0.41285276, 52.625977, 196.94467, 0.41285276, 50.625977, 210.94467, 0.41285276, 81.12598, 206.44467, 0.41285276, 86.62598, 187.44467, 0.41285276, 63.375977, 183.69467, 0.41285276, 61.375977, 227.94467, 0.41285276, 87.12598, 228.19467, 0.41285276, 87.62598, 229.44467, 0.41285276, 84.87598, 228.94467, 0.41285276, 84.62598, 219.44467, 0.41285276, 104.62598, 224.94467, 0.41285276, 93.37598, 223.44467, 0.41285276, 93.12598, 217.44467, 0.41285276, 101.37598, 218.94467, 0.41285276, 89.12598, 216.94467, 0.41285276, 89.12598, 216.44467, 0.41285276, 101.12598, 225.44467, 0.41285276, 80.37598, 218.19467, 0.41285276, 80.12598, 221.44467, 0.41285276, 83.37598, 220.44467, 0.41285276, 80.12598, 226.94467, 0.41285276, 87.12598, 214.19467, 0.41285276, 69.37598, 215.94467, 0.41285276, 111.62598, 220.19467, 0.41285276, 112.12598, 219.69467, 0.41285276, 110.87598, 185.19467, 0.41285276, 54.875977, 188.94467, 0.41285276, 57.375977, 211.94467, 0.41285276, 68.87598, 213.69467, 0.41285276, 70.12598, 212.19467, 0.41285276, 64.87598, 227.19467, 0.41285276, 92.87598, 198.69467, 0.41285276, 80.87598, 198.44467, 0.41285276, 80.37598, 183.94467, 0.41285276, 87.37598, 207.94467, 0.41285276, 73.12598, 206.44467, 0.41285276, 71.62598, 203.94467, 0.41285276, 75.62598, 215.69467, 0.41285276, 108.37598, 222.44467, 0.41285276, 107.62598, 219.69467, 0.41285276, 105.87598, 212.44467, 0.41285276, 63.125977, 208.69467, 0.41285276, 60.125977, 211.94467, 0.41285276, 70.12598, 209.19467, 0.41285276, 73.12598, 213.19467, 0.41285276, 74.62598, 213.69467, 0.41285276, 75.12598, 215.19467, 0.41285276, 77.87598, 221.94467, 0.41285276, 88.37598, 222.69467, 0.41285276, 88.37598, 223.19467, 0.41285276, 87.87598, 191.19467, 0.41285276, 59.875977, 194.19467, 0.41285276, 57.625977, 182.69467, 0.41285276, 91.12598, 190.19467, 0.41285276, 97.37598, 191.19467, 0.41285276, 97.37598, 203.94467, 0.41285276, 80.87598, 206.94467, 0.41285276, 88.12598, 189.94467, 0.41285276, 59.875977, 194.94467, 0.41285276, 98.62598, 195.19467, 0.41285276, 99.12598, 213.69467, 0.41285276, 77.62598, 181.69467, 0.41285276, 92.12598, 189.69467, 0.41285276, 98.12598, 200.94467, 0.41285276, 67.37598, 204.94467, 0.41285276, 69.12598, 216.44467, 0.41285276, 88.62598, 6.9446697, 0.41285276, 65.12598, 6.6946697, 0.41285276, 72.12598, 6.9446697, 0.41285276, 116.12598, 0.9446697, 0.41285276, 121.37598, 6.9446697, 0.41285276, 82.12598, 6.6946697, 0.41285276, 89.62598, 6.6946697, 0.41285276, 106.12598, 6.9446697, 0.41285276, 99.62598, 153.44467, 0.41285276, 85.37598, 153.69467, 0.41285276, 85.87598, 154.44467, 0.41285276, 85.87598, 154.44467, 0.41285276, 81.37598, 133.69467, 0.41285276, 78.87598, 135.69467, 0.41285276, 82.12598, 135.69467, 0.41285276, 84.12598, 148.94467, 0.41285276, 85.87598, 151.94467, 0.41285276, 85.37598, 133.94467, 0.41285276, 70.62598, 134.44467, 0.41285276, 73.87598, 158.44467, 0.41285276, 81.12598, 194.44467, 0.41285276, 104.87598, 193.44467, 0.41285276, 103.87598, 192.19467, 0.41285276, 103.87598, 190.94467, 0.41285276, 108.37598, 192.69467, 0.41285276, 108.87598, 171.44467, 0.41285276, 89.87598, 171.19467, 0.41285276, 91.12598, 172.69467, 0.41285276, 92.12598, 175.44467, 0.41285276, 89.62598, 193.94467, 0.41285276, 111.37598, 194.69467, 0.41285276, 110.12598, 195.19467, 0.41285276, 76.62598, 183.44467, 0.41285276, 86.62598, 190.44467, 0.41285276, 118.62598, 190.44467, 0.41285276, 115.62598, 189.94467, 0.41285276, 115.62598, 196.69467, 0.41285276, 76.37598, 169.94467, 0.41285276, 97.87598, 166.19467, 0.41285276, 99.37598, 167.44467, 0.41285276, 101.12598, 197.69467, 0.41285276, 71.62598, 200.44467, 0.41285276, 68.12598, 178.94467, 0.41285276, 85.37598, 180.44467, 0.41285276, 85.37598, 179.19467, 0.41285276, 83.12598, 176.19467, 0.41285276, 89.12598, 174.69467, 0.41285276, 94.62598, 204.69467, 0.41285276, 70.12598, 171.19467, 0.41285276, 98.37598, 167.44467, 0.41285276, 102.37598, 168.19467, 0.41285276, 107.62598, 174.69467, 0.41285276, 95.37598, 163.69467, 0.41285276, 104.62598, 163.94467, 0.41285276, 105.62598, 198.94467, 0.41285276, 75.37598, 188.44467, 0.41285276, 102.37598, 190.19467, 0.41285276, 108.37598, 179.19467, 0.41285276, 118.62598, 186.94467, 0.41285276, 112.62598, 186.94467, 0.41285276, 111.62598, 173.69467, 0.41285276, 118.62598, 173.94467, 0.41285276, 119.62598, 178.94467, 0.41285276, 119.62598, 177.19467, 0.41285276, 90.37598, 178.19467, 0.41285276, 86.62598, 166.19467, 0.41285276, 112.37598, 165.69467, 0.41285276, 118.62598, 165.69467, 0.41285276, 112.62598, 175.44467, 0.41285276, 83.87598, 164.94467, 0.41285276, 91.37598, 164.19467, 0.41285276, 90.87598, 163.94467, 0.41285276, 91.12598, 162.94467, 0.41285276, 104.62598, 162.94467, 0.41285276, 105.87598, 295.44467, 0.41285276, 114.87598, 290.69467, 0.41285276, 113.12598, 283.19467, 0.41285276, 121.37598, 297.69467, 0.41285276, 117.12598, 170.69467, 0.41285276, 89.62598, 170.19467, 0.41285276, 91.37598, 138.94467, 0.41285276, 107.87598, 139.19467, 0.41285276, 109.12598, 140.19467, 0.41285276, 109.12598, 139.69467, 0.41285276, 107.37598, 129.94467, 0.41285276, 111.37598, 126.69467, 0.41285276, 108.12598, 116.19467, 0.41285276, 118.37598, 116.44467, 0.41285276, 120.37598, 121.44467, 0.41285276, 118.37598, 159.94467, 0.41285276, 105.87598, 159.19467, 0.41285276, 109.12598, 161.44467, 0.41285276, 112.12598, 161.19467, 0.41285276, 110.62598, 170.19467, 0.41285276, 84.62598, 162.19467, 0.41285276, 103.87598, 159.94467, 0.41285276, 104.37598, 161.19467, 0.41285276, 109.37598, 158.19467, 0.41285276, 109.62598, 158.19467, 0.41285276, 111.12598, 160.69467, 0.41285276, 116.87598, 159.19467, 0.41285276, 117.12598, 158.94467, 0.41285276, 118.37598, 142.69467, 0.41285276, 101.87598, 140.94467, 0.41285276, 102.62598, 141.19467, 0.41285276, 103.87598, 151.44467, 0.41285276, 109.87598, 154.19467, 0.41285276, 108.62598, 153.69467, 0.41285276, 108.37598, 141.69467, 0.41285276, 114.37598, 140.19467, 0.41285276, 115.12598, 139.44467, 0.41285276, 116.12598, 147.94467, 0.41285276, 118.37598, 147.94467, 0.41285276, 113.87598, 146.69467, 0.41285276, 113.37598, 158.44467, 0.41285276, 95.87598, 157.94467, 0.41285276, 95.37598, 155.44467, 0.41285276, 96.37598, 310.44467, 0.41285276, 117.12598, 308.69467, 0.41285276, 115.37598, 307.19467, 0.41285276, 117.12598, 311.69467, 0.41285276, 121.62598, 306.19467, 0.41285276, 117.12598, 304.44467, 0.41285276, 115.37598, 302.94467, 0.41285276, 117.12598, 301.94467, 0.41285276, 117.12598, 300.19467, 0.41285276, 115.37598, 298.69467, 0.41285276, 117.12598, 170.44467, 0.41285276, 88.12598, 168.19467, 0.41285276, 86.62598, 166.44467, 0.41285276, 90.87598, 167.44467, 0.41285276, 93.87598, 151.19467, 0.41285276, 100.62598, 150.19467, 0.41285276, 98.87598, 147.94467, 0.41285276, 99.87598, 149.44467, 0.41285276, 103.62598, 156.19467, 0.41285276, 98.37598, 160.44467, 0.41285276, 99.87598, 163.94467, 0.41285276, 97.62598, 163.19467, 0.41285276, 96.37598, 153.69467, 0.41285276, 107.37598, 167.44467, 0.41285276, 82.62598, 164.19467, 0.41285276, 84.37598, 289.19467, 0.41285276, 126.12598, 103.94467, 0.41285276, 111.87598, 104.44467, 0.41285276, 111.62598, 100.69467, 0.41285276, 110.62598, 163.69467, 0.41285276, 82.12598, 142.69467, 0.41285276, 113.37598, 144.19467, 0.41285276, 110.87598, 142.69467, 0.41285276, 112.37598, 144.44467, 0.41285276, 106.12598, 159.94467, 0.41285276, 82.37598, 159.69467, 0.41285276, 86.37598, 161.69467, 0.41285276, 87.12598, 163.19467, 0.41285276, 84.37598, 144.19467, 0.41285276, 109.87598, 148.69467, 0.41285276, 105.12598, 145.94467, 0.41285276, 106.12598, 147.44467, 0.41285276, 106.62598, 148.44467, 0.41285276, 106.62598, 121.19467, 0.41285276, 120.37598, 146.69467, 0.41285276, 126.12598, 173.69467, 0.41285276, 120.87598, 160.44467, 0.41285276, 100.87598, 158.44467, 0.41285276, 103.62598, 163.69467, 0.41285276, 95.37598, 165.19467, 0.41285276, 97.62598, 167.44467, 0.41285276, 94.87598, 152.44467, 0.41285276, 100.62598, 149.44467, 0.41285276, 104.62598, 103.94467, 0.41285276, 113.37598, 99.69467, 0.41285276, 112.37598, 97.69467, 0.41285276, 116.12598, 104.94467, 0.41285276, 116.87598, 98.44467, 0.41285276, 112.37598, 94.69467, 0.41285276, 110.12598, 93.94467, 0.41285276, 112.37598, 97.69467, 0.41285276, 115.12598, 322.19467, 0.41285276, 106.37598, 311.44467, 0.41285276, 117.12598, 150.94467, 0.41285276, 129.87598, 150.94467, 0.41285276, 130.37598, 163.69467, 0.41285276, 144.12598, 109.19467, 0.41285276, 111.12598, 110.19467, 0.41285276, 115.87598, 106.94467, 0.41285276, 117.12598, 194.69467, 0.41285276, 144.12598, 208.44467, 0.41285276, 130.12598, 208.44467, 0.41285276, 129.62598, 154.69467, 0.41285276, 103.37598, 156.19467, 0.41285276, 103.12598, 96.19467, 0.41285276, 118.12598, 179.19467, 0.41285276, 120.87598, 135.69467, 0.41285276, 113.12598, 135.44467, 0.41285276, 112.12598, 130.94467, 0.41285276, 111.12598, 212.44467, 0.41285276, 126.12598, 138.19467, 0.41285276, 116.12598, 194.94467, 0.41285276, 104.37598, 194.19467, 0.41285276, 103.12598, 205.44467, 0.41285276, 104.12598, 206.69467, 0.41285276, 104.12598, 212.69467, 0.41285276, 103.37598, 214.19467, 0.41285276, 84.62598, 213.69467, 0.41285276, 86.62598, 215.44467, 0.41285276, 84.62598, 194.19467, 0.41285276, 112.37598, 196.44467, 0.41285276, 111.12598, 196.19467, 0.41285276, 104.37598, 209.44467, 0.41285276, 90.62598, 200.69467, 0.41285276, 116.62598, 202.44467, 0.41285276, 113.12598, 202.94467, 0.41285276, 108.87598, 203.94467, 0.41285276, 112.87598, 205.19467, 0.41285276, 113.62598, 206.44467, 0.41285276, 111.37598, 191.19467, 0.41285276, 115.62598, 215.94467, 0.41285276, 84.12598, 213.69467, 0.41285276, 87.62598, 197.69467, 0.41285276, 111.12598, 203.19467, 0.41285276, 107.12598, 199.69467, 0.41285276, 107.62598, 201.94467, 0.41285276, 118.62598, 200.69467, 0.41285276, 117.87598, 199.69467, 0.41285276, 106.37598, 209.44467, 0.41285276, 106.37598, 213.19467, 0.41285276, 105.37598, 210.94467, 0.41285276, 90.37598, 154.69467, 0.41285276, 86.37598, 154.19467, 0.41285276, 90.62598, 77.94467, 0.41285276, 112.37598, 79.19467, 0.41285276, 110.87598, 78.94467, 0.41285276, 110.37598, 71.44467, 0.41285276, 118.12598, 142.69467, 0.41285276, 101.12598, 137.19467, 0.41285276, 100.87598, 147.69467, 0.41285276, 99.37598, 149.19467, 0.41285276, 97.12598, 146.94467, 0.41285276, 99.37598, 84.94467, 0.41285276, 112.62598, 161.19467, 0.41285276, 89.12598, 158.69467, 0.41285276, 90.37598, 81.69467, 0.41285276, 115.87598, 77.94467, 0.41285276, 113.37598, 92.69467, 0.41285276, 112.62598, 94.69467, 0.41285276, 109.12598, 83.19467, 0.41285276, 115.37598, 90.44467, 0.41285276, 116.62598, 90.44467, 0.41285276, 115.87598, 101.69467, 0.41285276, 108.87598, 92.19467, 0.41285276, 118.12598, 91.94467, 0.41285276, 109.37598, 91.19467, 0.41285276, 109.87598, 149.19467, 0.41285276, 95.87598, 143.44467, 0.41285276, 100.62598, 153.94467, 0.41285276, 93.87598, 153.69467, 0.41285276, 91.12598, 116.69467, 0.41285276, 88.87598, 119.94467, 0.41285276, 86.12598, 126.69467, 0.41285276, 107.37598, 123.94467, 0.41285276, 93.87598, 108.94467, 0.41285276, 110.62598, 129.44467, 0.41285276, 85.87598, 124.69467, 0.41285276, 85.37598, 129.94467, 0.41285276, 86.37598, 101.69467, 0.41285276, 107.62598, 107.94467, 0.41285276, 110.62598, 98.44467, 0.41285276, 102.37598, 97.94467, 0.41285276, 103.12598, 98.19467, 0.41285276, 105.62598, 148.19467, 0.41285276, 87.37598, 134.19467, 0.41285276, 87.62598, 116.44467, 0.41285276, 93.87598, 127.44467, 0.41285276, 106.62598, 125.19467, 0.41285276, 94.12598, 148.19467, 0.41285276, 86.37598, 127.44467, 0.41285276, 87.37598, 128.94467, 0.41285276, 90.37598, 129.19467, 0.41285276, 92.12598, 135.94467, 0.41285276, 101.37598, 152.94467, 0.41285276, 93.87598, 149.19467, 0.41285276, 91.62598, 122.69467, 0.41285276, 88.87598, 122.69467, 0.41285276, 85.87598, 96.44467, 0.41285276, 105.87598, 122.44467, 0.41285276, 90.37598, 126.19467, 0.41285276, 93.62598, 246.44467, 0.41285276, 110.37598, 245.44467, 0.41285276, 108.12598, 233.69467, 0.41285276, 84.62598, 235.94467, 0.41285276, 109.37598, 232.69467, 0.41285276, 105.62598, 230.69467, 0.41285276, 109.62598, 234.44467, 0.41285276, 112.37598, 238.19467, 0.41285276, 114.37598, 236.44467, 0.41285276, 110.12598, 261.69467, 0.41285276, 116.62598, 260.94467, 0.41285276, 115.62598, 259.19467, 0.41285276, 115.87598, 258.69467, 0.41285276, 117.12598, 207.19467, 0.41285276, 111.37598, 207.44467, 0.41285276, 114.87598, 269.69467, 0.41285276, 109.62598, 267.19467, 0.41285276, 112.12598, 265.94467, 0.41285276, 117.37598, 278.94467, 0.41285276, 119.12598, 252.94467, 0.41285276, 116.12598, 226.94467, 0.41285276, 110.62598, 229.19467, 0.41285276, 109.62598, 214.94467, 0.41285276, 116.87598, 207.44467, 0.41285276, 116.12598, 206.19467, 0.41285276, 118.62598, 219.94467, 0.41285276, 117.62598, 226.94467, 0.41285276, 111.62598, 222.94467, 0.41285276, 114.62598, 220.94467, 0.41285276, 112.87598, 220.44467, 0.41285276, 116.87598, 209.94467, 0.41285276, 106.62598, 243.94467, 0.41285276, 114.87598, 237.94467, 0.41285276, 110.12598, 214.69467, 0.41285276, 108.12598, 215.44467, 0.41285276, 112.12598, 228.69467, 0.41285276, 102.62598, 241.44467, 0.41285276, 108.87598, 243.94467, 0.41285276, 113.62598, 209.94467, 0.41285276, 107.87598, 234.44467, 0.41285276, 118.87598, 231.44467, 0.41285276, 117.37598, 224.19467, 0.41285276, 114.62598, 231.19467, 0.41285276, 115.87598, 232.69467, 0.41285276, 112.87598, 248.69467, 0.41285276, 117.37598, 254.19467, 0.41285276, 118.37598, 235.19467, 0.41285276, 88.87598, 228.94467, 0.41285276, 92.37598, 232.19467, 0.41285276, 104.37598, 234.94467, 0.41285276, 105.37598, 246.94467, 0.41285276, 117.12598, 255.44467, 0.41285276, 118.37598, 236.44467, 0.41285276, 118.87598, 233.19467, 0.41285276, 112.37598, 133.94467, 0.41285276, 107.87598, 134.44467, 0.41285276, 106.12598, 133.94467, 0.41285276, 106.87598, 129.69467, 0.41285276, 104.12598, 128.44467, 0.41285276, 92.87598, 130.69467, 0.41285276, 104.12598, 134.44467, 0.41285276, 104.87598, 258.94467, 0.41285276, 110.37598, 257.94467, 0.41285276, 112.37598, 261.94467, 0.41285276, 106.62598, 259.94467, 0.41285276, 110.12598, 262.19467, 0.41285276, 110.87598, 261.94467, 0.41285276, 105.62598, 155.94467, 0.41285276, 111.12598, 155.19467, 0.41285276, 115.87598, 155.69467, 0.41285276, 116.37598, 151.44467, 0.41285276, 110.62598) @@ -5559,7 +5560,7 @@ transform = Transform3D(-0.40576938, 3.8708365e-21, 0.9139753, 0, 0.9999988, -4. [node name="EnemySpawner" parent="." index="7" unique_id=1628299934] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 1.5) -enemy_scenes = Array[PackedScene]([ExtResource("7_jum3j"), ExtResource("8_c4pne")]) +enemy_scenes = Array[PackedScene]([ExtResource("7_jum3j"), ExtResource("8_c4pne"), ExtResource("9_tfamw")]) [node name="WorldEnvironment" type="WorldEnvironment" parent="." index="8" unique_id=1644238697] environment = SubResource("Environment_7d3si") diff --git a/player/explosion/hit_area.gd b/player/explosion/hit_area.gd index bc791ab..f8422d8 100644 --- a/player/explosion/hit_area.gd +++ b/player/explosion/hit_area.gd @@ -3,6 +3,8 @@ extends Area3D func _on_collision(node: Node3D): if node.has_method("hit"): node.hit(self, INF) + if node.has_method("damage"): + node.damage(self) func _ready() -> void: body_entered.connect(_on_collision) diff --git a/player/player.gd b/player/player.gd index 8e6b669..0a17b42 100644 --- a/player/player.gd +++ b/player/player.gd @@ -10,7 +10,7 @@ enum State { } const MOVE_SPEED := 7.5 -const DASH_SPEED := 25. +const DASH_SPEED := 35. const DASH_COST := .5 static var instance: Player @@ -66,8 +66,8 @@ func _process_movement(delta: float) -> void: dash_direction = input state = State.DASHING await get_tree().create_timer(.25, false).timeout - state = State.LOCKED - await get_tree().create_timer(.5, false).timeout + # state = State.LOCKED + # await get_tree().create_timer(.5, false).timeout state = State.NORMAL func _process_dash() -> void: @@ -96,9 +96,9 @@ func _process_aim() -> void: func _process_shoot(delta: float) -> void: var clock_mul := 1. - match state: - State.DASHING: clock_mul = 2.5 - State.LOCKED: clock_mul = 2.5 + # match state: + # State.DASHING: clock_mul = 2.5 + # State.LOCKED: clock_mul = 2.5 gun.fire_clock -= delta * clock_mul if Input.is_action_pressed("fire") and gun.fire_clock <= 0.: