From 3738f2470557a4e3406c8b28cae5a7deb5157009 Mon Sep 17 00:00:00 2001 From: Zenny Date: Mon, 4 Sep 2023 01:33:30 -0700 Subject: [PATCH] Fix issues --- GameJam2023.csproj | 2 +- GameJam2023.csproj.old | 10 +++ GameJam2023.csproj.old.1 | 10 +++ GameJam2023.csproj.old.2 | 10 +++ Scenes/Characters/PiscesWitch.tscn | 5 +- Scenes/ExitPortal.tscn | 16 ++++- Scenes/Levels/Level1.tscn | 9 ++- Scenes/Levels/Level2.tscn | 6 +- Scenes/Levels/Level3.tscn | 9 +-- Scenes/Levels/Level4.tscn | 9 +-- Scenes/Levels/Level5.tscn | 9 +-- Scenes/Levels/Level6.tscn | 9 +-- Scenes/Levels/Level7.tscn | 9 +-- Scenes/Levels/Level8.tscn | 9 +-- Scenes/Levels/Level9.tscn | 90 +++++++++++++------------- Scenes/RangedEnemy.tscn | 21 +++++- Scenes/Weapons/CutterShot.tscn | 25 +++++-- Scenes/Weapons/CutterShotAltFire.tscn | 27 +++++--- Scenes/Weapons/EnemyBullet.tscn | 1 - Scenes/Weapons/LB HEDRON.png | Bin 0 -> 44155 bytes Scenes/Weapons/LB HEDRON.png.import | 35 ++++++++++ Scenes/Weapons/ShotgunBullet.tscn | 6 +- Scenes/Weapons/Single.tscn | 27 ++++++++ Scenes/Weapons/SingleShot.tscn | 27 +++----- Scripts/AreaExit.cs | 14 +++- Scripts/FinalLevel.cs | 10 +++ Scripts/GameManager.cs | 9 ++- Scripts/MainMenu.cs | 2 +- Scripts/MeleeEnemy.cs | 4 +- Scripts/Player1.cs | 6 +- Scripts/RangedEnemy.cs | 3 + Scripts/SingleShot.cs | 16 +++++ Scripts/TestBullet.cs | 14 ---- project.godot | 6 +- 34 files changed, 306 insertions(+), 159 deletions(-) create mode 100644 GameJam2023.csproj.old create mode 100644 GameJam2023.csproj.old.1 create mode 100644 GameJam2023.csproj.old.2 create mode 100644 Scenes/Weapons/LB HEDRON.png create mode 100644 Scenes/Weapons/LB HEDRON.png.import create mode 100644 Scenes/Weapons/Single.tscn create mode 100644 Scripts/FinalLevel.cs create mode 100644 Scripts/RangedEnemy.cs create mode 100644 Scripts/SingleShot.cs delete mode 100644 Scripts/TestBullet.cs diff --git a/GameJam2023.csproj b/GameJam2023.csproj index 233308f..c5d4913 100644 --- a/GameJam2023.csproj +++ b/GameJam2023.csproj @@ -1,4 +1,4 @@ - + net6.0 true diff --git a/GameJam2023.csproj.old b/GameJam2023.csproj.old new file mode 100644 index 0000000..233308f --- /dev/null +++ b/GameJam2023.csproj.old @@ -0,0 +1,10 @@ + + + net6.0 + true + + + + + + \ No newline at end of file diff --git a/GameJam2023.csproj.old.1 b/GameJam2023.csproj.old.1 new file mode 100644 index 0000000..c5d4913 --- /dev/null +++ b/GameJam2023.csproj.old.1 @@ -0,0 +1,10 @@ + + + net6.0 + true + + + + + + \ No newline at end of file diff --git a/GameJam2023.csproj.old.2 b/GameJam2023.csproj.old.2 new file mode 100644 index 0000000..233308f --- /dev/null +++ b/GameJam2023.csproj.old.2 @@ -0,0 +1,10 @@ + + + net6.0 + true + + + + + + \ No newline at end of file diff --git a/Scenes/Characters/PiscesWitch.tscn b/Scenes/Characters/PiscesWitch.tscn index 0a1609e..a909716 100644 --- a/Scenes/Characters/PiscesWitch.tscn +++ b/Scenes/Characters/PiscesWitch.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=7 format=3 uid="uid://b38hcomu4tpm5"] [ext_resource type="Script" path="res://Scripts/Player1.cs" id="1_6cdju"] -[ext_resource type="PackedScene" uid="uid://si4byubqnng4" path="res://Scenes/Weapons/SingleShot.tscn" id="2_xt4q8"] +[ext_resource type="PackedScene" uid="uid://cyn2wn6ffsnu7" path="res://Scenes/Weapons/Single.tscn" id="2_1c3c8"] [ext_resource type="PackedScene" uid="uid://bq40xbqibrk1y" path="res://Scenes/Weapons/ShotgunBullet.tscn" id="3_4eh4a"] [ext_resource type="PackedScene" uid="uid://yosw0j58nvrf" path="res://Models/Characters/fwitch.gltf" id="4_mtwuo"] @@ -16,7 +16,8 @@ height = 1.67894 [node name="Pisces" type="CharacterBody3D" groups=["Player"]] transform = Transform3D(0.33, 0, 0, 0, 0.33, 0, 0, 0, 0.33, 0, 0, 0) script = ExtResource("1_6cdju") -_fireProjectile = ExtResource("2_xt4q8") +_speed = 3.0 +_fireProjectile = ExtResource("2_1c3c8") _altFireProjectile = ExtResource("3_4eh4a") [node name="Pivot" type="Node3D" parent="."] diff --git a/Scenes/ExitPortal.tscn b/Scenes/ExitPortal.tscn index 7d7387a..bcf93ae 100644 --- a/Scenes/ExitPortal.tscn +++ b/Scenes/ExitPortal.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=5 format=3 uid="uid://jgf7k1r35km1"] +[gd_scene load_steps=7 format=3 uid="uid://jgf7k1r35km1"] [ext_resource type="PackedScene" uid="uid://0tegxun85rq" path="res://Textures/Models/exitprotal.gltf" id="1_jebs8"] +[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="2_4y188"] [sub_resource type="Animation" id="Animation_t7yyb"] length = 0.001 @@ -87,11 +88,24 @@ _data = { "Spin": SubResource("Animation_y78yk") } +[sub_resource type="CylinderShape3D" id="CylinderShape3D_v7qe0"] +height = 3.34825 +radius = 1.79103 + [node name="Exit Portal" instance=ExtResource("1_jebs8")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, 0) +script = ExtResource("2_4y188") [node name="AnimationPlayer" type="AnimationPlayer" parent="." index="3"] autoplay = "Spin" libraries = { "": SubResource("AnimationLibrary_fkf2e") } + +[node name="Area3D" type="Area3D" parent="." index="4"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D" index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.11619) +shape = SubResource("CylinderShape3D_v7qe0") + +[connection signal="body_entered" from="Area3D" to="." method="OnExitEntered"] diff --git a/Scenes/Levels/Level1.tscn b/Scenes/Levels/Level1.tscn index a911af6..d98b1aa 100644 --- a/Scenes/Levels/Level1.tscn +++ b/Scenes/Levels/Level1.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=7 format=3 uid="uid://dqv03pua4j8ga"] +[gd_scene load_steps=8 format=3 uid="uid://dqv03pua4j8ga"] [ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_owv8t"] [ext_resource type="PackedScene" uid="uid://dg3k3cvfyaqx1" path="res://Levels/Final Levels/STAGE 1.gltf" id="5_7416y"] [ext_resource type="PackedScene" uid="uid://bt5rolsyjmx55" path="res://Scenes/MeleeEnemyOrb.tscn" id="5_dqbra"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="6_gegi6"] +[ext_resource type="PackedScene" uid="uid://dahp73fwld24h" path="res://Scenes/RangedEnemy.tscn" id="6_jck5a"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="9_8v1uu"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_kv6vl"] @@ -36,4 +37,10 @@ script = ExtResource("9_8v1uu") [node name="STAGE 1" parent="." instance=ExtResource("5_7416y")] +[node name="Node3D" parent="." instance=ExtResource("6_jck5a")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.20212, 7.07432) + [connection signal="body_entered" from="Area3D2" to="." method="OnExitEntered"] diff --git a/Scenes/Levels/Level2.tscn b/Scenes/Levels/Level2.tscn index 963d088..0fe1962 100644 --- a/Scenes/Levels/Level2.tscn +++ b/Scenes/Levels/Level2.tscn @@ -1,6 +1,5 @@ -[gd_scene load_steps=6 format=3 uid="uid://basequfmpg04f"] +[gd_scene load_steps=5 format=3 uid="uid://basequfmpg04f"] -[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_u04pt"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="2_sq8bv"] [ext_resource type="PackedScene" uid="uid://cv33g1wyltecc" path="res://Levels/Final Levels/STAGE 2.gltf" id="4_kiw1e"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_dg8k3"] @@ -9,8 +8,6 @@ radius = 0.957319 [node name="Level2" type="Node3D" groups=["Level"]] -script = ExtResource("1_u04pt") -_levelIndex = 1 [node name="Area3D2" type="Area3D" parent="." groups=["Level"]] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.43759, 0, -2.42354) @@ -19,6 +16,7 @@ collision_mask = 16 [node name="Exit Portal" parent="Area3D2" instance=ExtResource("2_sq8bv")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252) +_levelIndex = 1 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823) diff --git a/Scenes/Levels/Level3.tscn b/Scenes/Levels/Level3.tscn index 492012e..ebd2cb1 100644 --- a/Scenes/Levels/Level3.tscn +++ b/Scenes/Levels/Level3.tscn @@ -1,17 +1,13 @@ -[gd_scene load_steps=7 format=3 uid="uid://btl5fdyjewnwc"] +[gd_scene load_steps=5 format=3 uid="uid://btl5fdyjewnwc"] -[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_1tnw5"] [ext_resource type="PackedScene" uid="uid://dwd2hlxhkcfpp" path="res://Levels/Models/STAGE 3.blend" id="1_blsh8"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_2t766"] -[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_t5mi5"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_kc2wt"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_j26hn"] radius = 0.957319 [node name="Level3" type="Node3D" groups=["Level"]] -script = ExtResource("1_1tnw5") -_levelIndex = 2 [node name="STAGE 3" parent="." instance=ExtResource("1_blsh8")] @@ -22,6 +18,7 @@ collision_mask = 16 [node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_2t766")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252) +_levelIndex = 2 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823) @@ -29,7 +26,7 @@ shape = SubResource("CylinderShape3D_j26hn") [node name="P1_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333) -script = ExtResource("4_t5mi5") +script = ExtResource("5_kc2wt") [node name="P2_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.3999, 0.123258, 5.51333) diff --git a/Scenes/Levels/Level4.tscn b/Scenes/Levels/Level4.tscn index b58701f..df538b3 100644 --- a/Scenes/Levels/Level4.tscn +++ b/Scenes/Levels/Level4.tscn @@ -1,17 +1,13 @@ -[gd_scene load_steps=7 format=3 uid="uid://ctvkevnc0wxka"] +[gd_scene load_steps=5 format=3 uid="uid://ctvkevnc0wxka"] [ext_resource type="PackedScene" uid="uid://c33ymduovqqw" path="res://Levels/Models/STAGE 4.blend" id="1_qu6ym"] -[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_sqfsi"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_wflo5"] -[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_hoql1"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_tx78o"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_8lqmd"] radius = 0.957319 [node name="Level4" type="Node3D" groups=["Level"]] -script = ExtResource("1_sqfsi") -_levelIndex = 3 [node name="STAGE 4" parent="." instance=ExtResource("1_qu6ym")] @@ -22,6 +18,7 @@ collision_mask = 16 [node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_wflo5")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252) +_levelIndex = 3 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823) @@ -29,7 +26,7 @@ shape = SubResource("CylinderShape3D_8lqmd") [node name="P1_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333) -script = ExtResource("4_hoql1") +script = ExtResource("5_tx78o") [node name="P2_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.65542, 0.123258, 5.51333) diff --git a/Scenes/Levels/Level5.tscn b/Scenes/Levels/Level5.tscn index 137319f..de05f91 100644 --- a/Scenes/Levels/Level5.tscn +++ b/Scenes/Levels/Level5.tscn @@ -1,17 +1,13 @@ -[gd_scene load_steps=7 format=3 uid="uid://col60npvg7wr1"] +[gd_scene load_steps=5 format=3 uid="uid://col60npvg7wr1"] [ext_resource type="PackedScene" uid="uid://cthfld06b4dng" path="res://Levels/Models/STAGE 5.blend" id="1_fagdb"] -[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_qbafj"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_ehcts"] -[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_a5c54"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_2mfmm"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_a8pxa"] radius = 0.957319 [node name="Level5" type="Node3D" groups=["Level"]] -script = ExtResource("1_qbafj") -_levelIndex = 4 [node name="STAGE 5" parent="." instance=ExtResource("1_fagdb")] @@ -22,6 +18,7 @@ collision_mask = 16 [node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_ehcts")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252) +_levelIndex = 4 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823) @@ -29,7 +26,7 @@ shape = SubResource("CylinderShape3D_a8pxa") [node name="P1_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333) -script = ExtResource("4_a5c54") +script = ExtResource("5_2mfmm") [node name="P2_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.16798, 0.123258, 5.51333) diff --git a/Scenes/Levels/Level6.tscn b/Scenes/Levels/Level6.tscn index 7e78e41..d7b784c 100644 --- a/Scenes/Levels/Level6.tscn +++ b/Scenes/Levels/Level6.tscn @@ -1,17 +1,13 @@ -[gd_scene load_steps=7 format=3 uid="uid://8ukphol1isp2"] +[gd_scene load_steps=5 format=3 uid="uid://8ukphol1isp2"] [ext_resource type="PackedScene" uid="uid://bc3wjl3ibs5q7" path="res://Levels/Models/STAGE 6.blend" id="1_q1cka"] -[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_qlv44"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_0wdh0"] -[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_awoco"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_tba4e"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_wu0in"] radius = 0.957319 [node name="Level6" type="Node3D" groups=["Level"]] -script = ExtResource("1_qlv44") -_levelIndex = 5 [node name="STAGE 6" parent="." instance=ExtResource("1_q1cka")] @@ -22,6 +18,7 @@ collision_mask = 16 [node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_0wdh0")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252) +_levelIndex = 5 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823) @@ -29,7 +26,7 @@ shape = SubResource("CylinderShape3D_wu0in") [node name="P1_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333) -script = ExtResource("4_awoco") +script = ExtResource("5_tba4e") [node name="P2_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.10805, 0.123258, 5.51333) diff --git a/Scenes/Levels/Level7.tscn b/Scenes/Levels/Level7.tscn index 72295a6..54e2495 100644 --- a/Scenes/Levels/Level7.tscn +++ b/Scenes/Levels/Level7.tscn @@ -1,17 +1,13 @@ -[gd_scene load_steps=7 format=3 uid="uid://bsq7edeueqyjg"] +[gd_scene load_steps=5 format=3 uid="uid://bsq7edeueqyjg"] [ext_resource type="PackedScene" uid="uid://biurk21cl5wxw" path="res://Levels/Models/STAGE 7.blend" id="1_dc67b"] -[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_fio4n"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_sjnhq"] -[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_kxyoc"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_5gfi0"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_a56hv"] radius = 0.957319 [node name="Level7" type="Node3D" groups=["Level"]] -script = ExtResource("1_fio4n") -_levelIndex = 6 [node name="STAGE 7" parent="." instance=ExtResource("1_dc67b")] @@ -22,6 +18,7 @@ collision_mask = 16 [node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_sjnhq")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252) +_levelIndex = 6 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823) @@ -29,7 +26,7 @@ shape = SubResource("CylinderShape3D_a56hv") [node name="P1_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333) -script = ExtResource("4_kxyoc") +script = ExtResource("5_5gfi0") [node name="P2_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.6401, 0.123258, 5.51333) diff --git a/Scenes/Levels/Level8.tscn b/Scenes/Levels/Level8.tscn index 80dbc51..11db03d 100644 --- a/Scenes/Levels/Level8.tscn +++ b/Scenes/Levels/Level8.tscn @@ -1,17 +1,13 @@ -[gd_scene load_steps=7 format=3 uid="uid://c4xcka4ekuur8"] +[gd_scene load_steps=5 format=3 uid="uid://c4xcka4ekuur8"] -[ext_resource type="Script" path="res://Scripts/AreaExit.cs" id="1_mo03n"] [ext_resource type="PackedScene" uid="uid://dibismvgu8151" path="res://Levels/Models/STAGE 8.blend" id="1_wd00s"] [ext_resource type="PackedScene" uid="uid://jgf7k1r35km1" path="res://Scenes/ExitPortal.tscn" id="3_44edv"] -[ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="4_rdu0b"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="5_76jfi"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_3ne7n"] radius = 0.957319 [node name="Level8" type="Node3D" groups=["Level"]] -script = ExtResource("1_mo03n") -_levelIndex = 7 [node name="STAGE 8" parent="." instance=ExtResource("1_wd00s")] @@ -22,6 +18,7 @@ collision_mask = 16 [node name="Exit Portal" parent="Area3D2" instance=ExtResource("3_44edv")] transform = Transform3D(0.7, 0, 0, 0, 0.7, 0, 0, 0, 0.7, 0, 0, -2.53252) +_levelIndex = 7 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.51823) @@ -29,7 +26,7 @@ shape = SubResource("CylinderShape3D_3ne7n") [node name="P1_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333) -script = ExtResource("4_rdu0b") +script = ExtResource("5_76jfi") [node name="P2_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.60971, 0.123258, 5.51333) diff --git a/Scenes/Levels/Level9.tscn b/Scenes/Levels/Level9.tscn index b2fb593..94be534 100644 --- a/Scenes/Levels/Level9.tscn +++ b/Scenes/Levels/Level9.tscn @@ -1,5 +1,6 @@ -[gd_scene load_steps=9 format=3 uid="uid://0hdnmilwrsq6"] +[gd_scene load_steps=10 format=3 uid="uid://0hdnmilwrsq6"] +[ext_resource type="Script" path="res://Scripts/FinalLevel.cs" id="1_sy7dk"] [ext_resource type="Script" path="res://Scripts/HealthbarProgress.cs" id="2_53ar2"] [ext_resource type="Script" path="res://Scripts/SpawnPoint.cs" id="3_xr71f"] [ext_resource type="PackedScene" uid="uid://brbshysbgd47q" path="res://Scenes/god_circuit.tscn" id="4_vmhpd"] @@ -7,54 +8,14 @@ [ext_resource type="PackedScene" uid="uid://b0chkusc2bo2v" path="res://Levels/Final Levels/AnimatedFinal.tscn" id="6_8beqh"] [ext_resource type="PackedScene" uid="uid://b1j0g6ikmnibm" path="res://Scenes/HPComponent.tscn" id="7_nvq88"] -[sub_resource type="LabelSettings" id="LabelSettings_8edkl"] -font_color = Color(0, 0, 0, 1) - [sub_resource type="BoxShape3D" id="BoxShape3D_slhvd"] size = Vector3(2.65272, 5.04315, 1.02395) +[sub_resource type="LabelSettings" id="LabelSettings_cs88m"] +font_color = Color(0, 0, 0, 1) + [node name="Level9" type="Node3D" groups=["Level"]] - -[node name="Control" type="Control" parent="."] -visible = false -layout_mode = 3 -anchors_preset = 15 -anchor_right = 1.0 -anchor_bottom = 1.0 -grow_horizontal = 2 -grow_vertical = 2 - -[node name="TextureProgressBar" type="TextureProgressBar" parent="Control"] -top_level = true -z_index = 1 -layout_mode = 1 -anchors_preset = 10 -anchor_right = 1.0 -offset_left = 4.0 -offset_top = 44.0 -offset_right = 4.0 -offset_bottom = 73.0 -grow_horizontal = 2 -max_value = 2e+09 -value = 2e+09 -nine_patch_stretch = true -texture_progress = ExtResource("5_jjg8p") -script = ExtResource("2_53ar2") - -[node name="Label" type="Label" parent="Control"] -top_level = true -z_index = 1 -layout_mode = 1 -anchors_preset = 5 -anchor_left = 0.5 -anchor_right = 0.5 -offset_left = -43.0 -offset_right = 43.0 -offset_bottom = 26.0 -grow_horizontal = 2 -text = "God Circuit -" -label_settings = SubResource("LabelSettings_8edkl") +script = ExtResource("1_sy7dk") [node name="P1_SpawnPoint" type="Marker3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.503964, 0.123258, 5.51333) @@ -77,8 +38,45 @@ shape = SubResource("BoxShape3D_slhvd") [node name="HP Component" parent="God Circuit" node_paths=PackedStringArray("_healthBar") instance=ExtResource("7_nvq88")] MaximumHP = 2000000000 -_healthBar = NodePath("../../Control/TextureProgressBar") +_healthBar = NodePath("") [node name="FINAL STAGE" parent="." instance=ExtResource("6_8beqh")] +[node name="FinalBossGUI" type="Control" parent="." groups=["BossGUI"]] +visible = false +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="TextureProgressBar" type="TextureProgressBar" parent="FinalBossGUI"] +layout_mode = 1 +anchors_preset = 10 +anchor_right = 1.0 +offset_left = 383.0 +offset_top = 44.0 +offset_right = -491.0 +offset_bottom = 73.0 +grow_horizontal = 2 +max_value = 1e+09 +value = 1e+09 +nine_patch_stretch = true +texture_progress = ExtResource("5_jjg8p") +script = ExtResource("2_53ar2") + +[node name="Label" type="Label" parent="FinalBossGUI"] +layout_mode = 1 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -43.0 +offset_right = 43.0 +offset_bottom = 26.0 +grow_horizontal = 2 +text = "God Circuit +" +label_settings = SubResource("LabelSettings_cs88m") + [connection signal="body_entered" from="God Circuit/Area3D" to="God Circuit" method="OnHit"] diff --git a/Scenes/RangedEnemy.tscn b/Scenes/RangedEnemy.tscn index 5499dd4..dd20ef0 100644 --- a/Scenes/RangedEnemy.tscn +++ b/Scenes/RangedEnemy.tscn @@ -1,7 +1,22 @@ -[gd_scene load_steps=2 format=3 uid="uid://dahp73fwld24h"] +[gd_scene load_steps=4 format=3 uid="uid://dahp73fwld24h"] +[ext_resource type="Script" path="res://Scripts/RangedEnemy.cs" id="1_1t8ms"] [ext_resource type="PackedScene" uid="uid://dotxb4dc15l4k" path="res://Models/Enemies/ranged enemy.glb" id="1_aj5wt"] -[node name="Node3D" type="Node3D"] +[sub_resource type="BoxShape3D" id="BoxShape3D_dm3u7"] +size = Vector3(1.15368, 2.18529, 0.924281) -[node name="ranged enemy" parent="." instance=ExtResource("1_aj5wt")] +[node name="RangedEnemy" type="Node3D"] +script = ExtResource("1_1t8ms") + +[node name="Area3D" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 2 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.094986, 0.430939, 0) +shape = SubResource("BoxShape3D_dm3u7") + +[node name="ranged enemy" parent="Area3D" instance=ExtResource("1_aj5wt")] + +[connection signal="body_entered" from="Area3D" to="." method="OnHit"] diff --git a/Scenes/Weapons/CutterShot.tscn b/Scenes/Weapons/CutterShot.tscn index 2864d23..068cdef 100644 --- a/Scenes/Weapons/CutterShot.tscn +++ b/Scenes/Weapons/CutterShot.tscn @@ -12,12 +12,11 @@ point_count = 4 [sub_resource type="CylinderShape3D" id="CylinderShape3D_mgm2i"] height = 8.481 -radius = 0.3 [node name="CutterShot" type="Node3D" node_paths=PackedStringArray("_pathFollow", "_sprite")] script = ExtResource("1_inha4") _pathFollow = NodePath("Path3D/PathFollow3D") -_sprite = NodePath("Path3D/PathFollow3D/Area3D/Sprite3D") +_sprite = NodePath("Path3D/PathFollow3D/RigidBody3D/Sprite3D") Cooldown = 0.3 _projectileSpeed = 0.1 @@ -26,20 +25,32 @@ top_level = true curve = SubResource("Curve3D_5hmi4") [node name="PathFollow3D" type="PathFollow3D" parent="Path3D"] -transform = Transform3D(0.782564, 0, -0.622568, 0, 1, 0, 0.622568, 0, 0.782564, 0, 1, 0) +transform = Transform3D(-0.782564, 0, 0.622568, 0, 1, 0, -0.622568, 0, -0.782564, 0, 1, 0) loop = false tilt_enabled = false -[node name="Area3D" type="Area3D" parent="Path3D/PathFollow3D"] +[node name="RigidBody3D" type="RigidBody3D" parent="Path3D/PathFollow3D"] collision_layer = 2 collision_mask = 0 +gravity_scale = 0.0 +continuous_cd = true +max_contacts_reported = 100 +contact_monitor = true +can_sleep = false -[node name="CollisionShape3D" type="CollisionShape3D" parent="Path3D/PathFollow3D/Area3D"] -transform = Transform3D(0.999999, 0, 8.9407e-08, 0, 1, 0, -8.9407e-08, 0, 0.999999, 0, 0, 0) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Path3D/PathFollow3D/RigidBody3D"] +transform = Transform3D(0.999999, 0, 1.19209e-07, 0, 1, 0, -1.19209e-07, 0, 0.999999, 0, 0, 0) shape = SubResource("CylinderShape3D_mgm2i") -[node name="Sprite3D" type="Sprite3D" parent="Path3D/PathFollow3D/Area3D"] +[node name="Sprite3D" type="Sprite3D" parent="Path3D/PathFollow3D/RigidBody3D"] transform = Transform3D(0.156513, 0, 0.124514, 0, 0.2, 0, -0.124514, 0, 0.156513, 0, 0, 0) axis = 1 double_sided = false texture = ExtResource("1_v8p6h") + +[node name="TTL" type="Timer" parent="."] +process_callback = 0 +wait_time = 0.8 +autostart = true + +[connection signal="timeout" from="TTL" to="." method="OnTimeToLiveTimeout"] diff --git a/Scenes/Weapons/CutterShotAltFire.tscn b/Scenes/Weapons/CutterShotAltFire.tscn index a18763b..afd74c7 100644 --- a/Scenes/Weapons/CutterShotAltFire.tscn +++ b/Scenes/Weapons/CutterShotAltFire.tscn @@ -12,34 +12,45 @@ point_count = 4 [sub_resource type="CylinderShape3D" id="CylinderShape3D_mgm2i"] height = 8.481 -radius = 0.3 [node name="CutterShot" type="Node3D" node_paths=PackedStringArray("_pathFollow", "_sprite")] script = ExtResource("1_7xtlh") _pathFollow = NodePath("Path3D/PathFollow3D") -_sprite = NodePath("Path3D/PathFollow3D/Area3D/Sprite3D") +_sprite = NodePath("Path3D/PathFollow3D/RigidBody3D/Sprite3D") Cooldown = 0.3 -_projectileSpeed = 0.1 +_projectileSpeed = 3.0 [node name="Path3D" type="Path3D" parent="."] top_level = true curve = SubResource("Curve3D_5hmi4") [node name="PathFollow3D" type="PathFollow3D" parent="Path3D"] -transform = Transform3D(0.782564, 0, 0.622568, 0, 1, 0, -0.622568, 0, 0.782564, 0, 1, 0) +transform = Transform3D(-0.782564, 0, -0.622568, 0, 1, 0, 0.622568, 0, -0.782564, 0, 1, 0) loop = false tilt_enabled = false -[node name="Area3D" type="Area3D" parent="Path3D/PathFollow3D"] +[node name="RigidBody3D" type="RigidBody3D" parent="Path3D/PathFollow3D"] collision_layer = 2 collision_mask = 0 +gravity_scale = 0.0 +continuous_cd = true +max_contacts_reported = 100 +contact_monitor = true +can_sleep = false -[node name="CollisionShape3D" type="CollisionShape3D" parent="Path3D/PathFollow3D/Area3D"] -transform = Transform3D(0.999999, 0, 8.9407e-08, 0, 1, 0, -8.9407e-08, 0, 0.999999, 0, 0, 0) +[node name="CollisionShape3D" type="CollisionShape3D" parent="Path3D/PathFollow3D/RigidBody3D"] +transform = Transform3D(0.999999, 0, 5.96046e-08, 0, 1, 0, -5.96046e-08, 0, 0.999999, 0, 0, 0) shape = SubResource("CylinderShape3D_mgm2i") -[node name="Sprite3D" type="Sprite3D" parent="Path3D/PathFollow3D/Area3D"] +[node name="Sprite3D" type="Sprite3D" parent="Path3D/PathFollow3D/RigidBody3D"] transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 0, 0) axis = 1 double_sided = false texture = ExtResource("2_a0jul") + +[node name="TTL" type="Timer" parent="."] +process_callback = 0 +wait_time = 0.8 +autostart = true + +[connection signal="timeout" from="TTL" to="." method="OnTimeToLiveTimeout"] diff --git a/Scenes/Weapons/EnemyBullet.tscn b/Scenes/Weapons/EnemyBullet.tscn index ece74d0..b6d5c74 100644 --- a/Scenes/Weapons/EnemyBullet.tscn +++ b/Scenes/Weapons/EnemyBullet.tscn @@ -15,7 +15,6 @@ radius = 0.440093 [node name="TestBullet" type="Node3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.538645, 0) script = ExtResource("1_rv13r") -Cooldown = null _projectileSpeed = 20.0 [node name="RigidBody3D" type="RigidBody3D" parent="."] diff --git a/Scenes/Weapons/LB HEDRON.png b/Scenes/Weapons/LB HEDRON.png new file mode 100644 index 0000000000000000000000000000000000000000..b42f6a43aa5bf4097d1bc2b6977cba9d96ef8179 GIT binary patch literal 44155 zcmZU)2Rzkp|3A**7)M6skYtp~rZSUFsqDPC_2WGl!}H@*0ISvve$8rl2rCO zwoukVg<~9t|Mm8{Ki}VdKmL!0a_U^~>v~n+D;G9Mhw!7P?FME8db$PMBl4EcAC^$4`XQ zYqKtMFg?AD8B_Y;61<@{>$SF2-h{?C2KQU7s~1`p+jy$E-R^Ik2)5{7K^HDuUn!`> zC%1)5q{FPZYu@F~TSl8}!mlBe)xNVKO(J~|HIsdp(bqgg_72Qlg56ZI(1e5Up`Y{& z*f~`3TYeaI__#+N3~ca!Kdok(I1PvI0%eH&h<|?w97ry5@R7bo_BLj}&?ouRru0aY z{U2*>dSV!>MPu&2OZT4%u++q@NY%8z|Gyo;2f`r)3q?PFLE-wngdt|3?=fFcna7fz9X6|IrG4z&(IrXom_y4F5yXKXlC%MW80G`z4$G zODOc;k*B!1$cZNXo(2C+m!=z>k($G}F?%iX+Q8y}e{~WpHw2vguRSh{I5k>hCsHV(K#p3_DNikS&D?T6iA94I66x2mP z2(qQx<9|+c&jB~NdZjcArXx1lHgdcfCHkMIP;h9yZuOP_U0)2=+nAQ-!HSVMmVZ9| z!?1dDP29vyYk`FSk`SJGXlBx<@*%K_gr0w1$4`FL_&l^ zP2SgqJeZ{9q-oD<2ET}3a4G}i&~ZUydZl>7&#JIBW9B&A- z2h+iQeDXXv1}7BeLpTx!FG7@2vLpD3X_@oZ;B!?j!7C~J9BOc__+|vn0#ccWh#FRT z?q2=(gcFFnC9VgrGuOC#<~JRC=}D!duVRBJ?6Rfj-5ZY`Ndr3GjkG>A7fsD_OPsc% zM=DnU+MoWmy_|YHtwh346&^z0=oj8Fnxy2URDN%Jz8JFWv^A>lTnh<&Y@cDro-D|FzQ6tJz|@iHCoj|--#lli>AgI}6+=m2Yq zhuNxSoF;9waoPeKRgQzv&DHxJFQK)z>FE`~B>aTocB7o!UNPV^t_Egdve!Q^lo{8M zvKu&)xc#S4$iUH`7ISMM7aWog8}mFlJwMs3?qEQE0jQvG=fk#FahK?*cN`gamQE$B zSwb8F#5C4sK0n|$`_8}S&LwX5gSukce_TI_&XPCaY znOWZ za915#K9btl+(-)Ud%sX)G5HqwmDZ>AS%8{H;$4h$)h1;Vl9R2?#g&lEz081zO7<@w z1O(E!-4W}Cl9c|R?urk9E*iZd=r;7)YE}bN59j>331^61rZQXD+{C)ptqC?Gu>C^>o zu=z7_lYCWH3jdS5F`$O-C7M?G8tY-qsBjKU=;hUbH4LN&1f-woui<&%ByryGItJSH z5`jo?gm))>Xeq28A%)g0s}niuV4;aq(gJ732Cmj6569 z5Vq?ijd*4x(Pc$H-%vU(S#g?FDqLp>d|^?p=F3lTYJlnqRCpc6ugS(?1P3u|6zFX- z3m`(zWb&4WJrfYCIpTsrEEaei$^O{HAic+q@%~5(_%>_iR4$z>x zCh12Pj0G`hl{=YkoqF%jlCVc_ch0Mddx0=CX^p7)A}Bc? zX9=g|(=mZP>?J9Q&uTZw{-;$=gFE#j{rv6K7=s`wN}S=JgH!tn;|ppAA!CqWCzF6Z zYyo?~U4$oT(L8?RRg;Y(;c-){-e1(*pOkm10|h%!81ZBQmr>>nILHc5f;A$k7SJK} zyywRtvq+DG$>g%@t{np3+jCnpE)jGH77p@ISK!T>d);eI0k8i)=`BsC_)J;}`Q}yUH+qCH z(3+3e_{MCZ;iC1}ssEUAASi(SD(N{%LVvzM{oH z@7hD^!Weo7@CIcM_zD>289Ay>!s>}mmR`8w4ZcTt!HY=o0z#pAuuzM1acGO2wlKo3 z{Iwr=Zr{C7S8cMg%n@!nc4=6COe<1FQ0eXtZ?GDjivtDV4h+VmTWgU5k7>PSpZ1%JU^a7S9} zM)pUH$D+m4VhTu(u|EW@uChb-#!15M)`E~m%vrEPvFGrR-PcD$;t6jm;&YoAqn&9D zsbcOQeWoa+&D_V^Xd~vg>r~>JnUr|a#wWG{LJi`s*o{$=Zs;!zuZ2M<5_rde9}QRi zfE8Y6q>i4v#YxF~^B}aweI5i2+Gqd}@-c$;USv5c**=Y21GY1R+jV_s1p#*XiA`oITs=vSL9AJzOo2CT0oO=JP^Kf$KP&E(7I9yd12+sr`jy#O zh1*(1Dsa!i*7G7+DHyaAk!nR|pxtRY@F?d!;D-vL#-uo_zPNyJ6fwH{eGQu)wCBF9 zFr#ERwtRefdm|^=v5_i!-p!cl?vt3-W4@vYyl>m@<<}=myzcj|J(O2WO^d*_OZ{4p zniqBEaF;!fJH&x}O_qgVi!zO3 zyT{$wCg%xBOAHN9RNr{rCuE@UPH=O&As~E7;h?u32qaqcyn?T^;8l5=M}U8qJ?ugZ zn?Pat?Rm(nHBAOE2oXoxOFVyXZ}H3mSNigb2=d4!`UC6r1thoT8!hUIdDPvXL&&gn zi8|q$!Ar6-!kk{iLs-fJkENl05GS{tUKFI8sIco+mHGr<3HN9Cv~35z=>QiA++3N)(T*$H%q^K zQOIyl?${dJ+~D9+)VxmLq@K_Y;%_MJXszKfGBxd9Q>xhJIs46b!ABnTiM}kTb4a=M zuFynHsCpx6K5s0la4H*MRLx?Tj6~&CkkX>L^G~o7)dda^)r+5?u*nS;z0yBMnaIYx zg6zx1X&cw)yf4DvTmxz5)$65&u(NRO2giY6U#w-Ku++HFT5kltwSa^TJjTBK?N2|* zVNm8kpG-xZo8q#842_#vfZ4cUOmOiPe@K?NPPGfQx$h%7<&2DhRDuC!am65tAjx&w zBgt^;wvxkD{geEA3m|8`Lyopc<#YfR=%bdO^ID+%0g!dT@sdTZOOaL( zb>@~SfEFQ(bRD`MvojL9i8tTZFr+<3V2 z19qYzCZo>~9+V5x`0@yq6d#1@um_x4RR>(bIsio>%gkhB5$KZW<4orQao3;C%Uy5%I-o7}_5KaByld4QU839S}$P{XZlwikUEO->GJ# zR?#0Kk1U9jgm}oE48f(oYB^xpfr5xv=q>`OxF4DSaNEonPJMDW8viXVt{gR?vNvyK zw%^1>%;AC`Bf13dlSckn|#%Zp=a|W4xF%4wjjG@9w zGWBM3AXQq1f;^mv?iU z)}ErWO!(@<2PPRAl(n=(Lq6)v3iU^CjWz#4E7A@K2pcP?0UVGdHaX*cB8!*LI+9Bq z=#+>!DGyS=dpt=cyu1g=X0aV~)ZU*nQB~hEtjr>15X%1bU%W&l#Ufa=fcA**gB9+i zs$Q2Cb@5f;iXF|2@(rgl;_L^4Z0Z}uCm)R2>I!h4in{O@+xfuz z>OI>DYBdbrEjY+Vu{dYJ54pL(52Jjab2r+y$4-O%mXTt);>=o7iI6G*rd{(%vCAZq zRKj_bhaBl{W#<~HCf3z05@M!%Dw>&$RWx+hZA4HUj{!v!N{>B<=u$A+a2mpjdMEW%gsM0g>g#{%7y*-#|mbk@AnOE*A zoo4~JKX1|#s|F8P2v)^u=-Cj2T&gSi>#ZV|{?;e9&HcYw+qtEM0OYbr;kzmc0tgK6d_vl-(r>wOLqWG-Ke{=F2>HLuowg(wkG7sO z^8`gi7K-_K+AlGa{ah4^y6*eIjTc}A9*sj5d)J=zQ>}Av6~ijQQUE6gwIgq(YbZhB z@WrRY(9U=k%3>t#{m&z#)WYXwqXYj@y8C38TkzcHR07{&fs_)@{rxim@+Q2xvwCtE z#pOFs-nMInd8Cfmq^^qYTPwa9sdQel{@JX327(k;q?(iRV!}Q5TQZVrE;ts|=qHry zVpFJjjlSxeWG=$aDq=aLvt)sfn$i`pa83iVF6j`!4AP+6cQ^@~O47EN$bJKrA5&E8 z*_R|3Jek%k$@+i(>j1~H_@~ch0)amT&OoEQMdHvUZwpima56zh`d&ZO4X!I3s{~1@ z`peERq-gOQ4U^a3PSkmsY7o`wD57S3r#{f#0)~F{4ybDc#1!7L0r9`^(9d!AYE<}M zP80v5^B6ToDw&sO{(~rqnYio4A*b;n#JvzkH6gTph*vIAK-AS+Y*;~$y}Fr{JBFb( zvS83M{Oa-9ZPC*9&G}dqCjba)-~Gno@*+^-4R5QD_}{gfj@X4!5*r(s`IG@6o?syp_$y1LI-aBilmwnGF2z?7FU%2{Zfr32AoVjy1~Y#-}KA z?DWauy%p>lyWh$K?g#qsd2OGsLn*#nanOZVrANGSVKY6N7avfa2IAD~jX9?6Wdki% z@}0(PI{n(`n0ypAPPpF;*V+DPZs&rd8-G|9hIaiTefTjkoai*ja^iVknT9^d*p(M1 zhI!+{2l1$hppb5UK}kxja-W3{HpI5fH&VML(8&e8M~k>YQp^ zklHI=;kyjvHZ$0<0-4-#|=L<@x2sV2==i~i0a3(XtCm|`} z)cRidg0b_5eFYw|B=_Djwa>>wXTP|o?|bs}=0_Lf4pOy)i?hxkcnH*@g-&v%)_1dm z1S;`_ex7jQ&UH|^5upS_ki(hp<1cAu*MV^(2})u{2Aj83gH0iU4)K=Ez?gA|w+<>) zcpl6(d+tpFu73#fDP>QcRxNSHg?87=cz-)zDOmrEOgAt4b3^C@wU7=hzgE&M{sq+X z_RrXljt7#fF=#muZy(9jm6>=J!z9H~n9`H?TU~WD9k+Bo{8$eCtS-uziaEf=NcCHA z2!y0(eW~o8BuNP#`a}Iqg^jNP{Z%AC|1YijP`R5LE8n&1tKVc$Uq0z*j1b7-m-X^- zqV4!?Gu`?s%oKB5Q zTg6OiRvW8df*DR_SwwOxhx3TdvvaPmiWzxEtcw}hm?|IVQE}GDa|)-Z z9UYBnGCMeQxo&9LncG~3m?kkeQOXLHB;g&gkPgN*?1j!;pd?!5L>SQkmcy$T8kc5Y z15^ZrI)^C$#w-NN6XIu{R6)g?cx1etFKHq0rdPQH#oqVfeAkfvdk`DUVxp)Da8ng& zwb)nm*2>S^cjlfwz}9=wPQHLU;EY?fYVst@!_+{dH?%;&_et?r zi@q8mD8))$SASsNmGN_F1iu>?0ULBxIbo9r)5X;NZ8X7ovTQ$*FQY0ALjp%KeX zcFy~JZj+@`c9&*$#f&5_e=xtt*OU1QcG_7qgROlu%zL}k#5hb9EwJ@EEcQaUY0^2b zsK}^f{{y%AX*)Tkd&raQaG8aT?K^$#^U^!Y2iLQdge%lS6!#RQxO>BTYRuGpJ)(X~ z%FyU}PE!~e;v?U!zgoO9XumMH%QRCy&#Rs6-05qw=Jlj_Go;d7IN^~rKgA{(p;~km zgI;`^{@ze2)_l)XP`o@0L7BgwL8q^kPz9`WT9h<9phZ-Fb=Gg%9TbA&bbkm2IVd4( z3h1&B7riqGA{dZnT@Ja&o-`~?#Jd_4VIie|W$(rx!l2DIw|410AIa*C*uCg?nB#>H zHqIab|1)Y+f9Ebx6f}bUG)C1d z$+9391u-l-p=7WS0-tOZ1N2}U#-qxQ#O>_`XC6nAa=dnuB_85%I_`)&D3=~PfaD(?8Pa!!|_uypPbT9lV;ak z9=ESQU^{&OU0{+mzEA!5-H_N)7}+=ym8^xLb*&viyuJKKxfeNiOCN()bKuI{Wzm54DQhdd6osA~i)GM?%aB5zX6^1tS%o`!q6|!VP ze^`vCZ%X2C_nJmaiSkGtDaU|Keyy)GSR=H$Rk1mIY1&bTPg8P^8zpWse(rki_;gks zO5^Sa%!0PBru*o7nF{PN)OBGW(YK_{%j|H|VdDxZ!|J>D0~&LuvqC8Ivu?eE^OwHC z@&-$|&)i#RzOI%Gr>3O$A5yQSGwdE;Dr3KdGoEFGTO$(2Xh)2v_yrN)G3e78aBB7$ z4BBVUnHm-0$n0*TW*Kp<_eH>ggPH%)A;^ZJ$A5c)vTC8Xdy86OOiC^*gh6M0?oJ9w zvTf^z9}k|FqjdHYLHjr%h3ERoN`)IGGjzk^pml@^XM0r~WEi?#cL*`@R3Sln6w1Pe zVuCm+UPrs@LI3Rd)@`>5k)eBaqKC=7v1Oljy|%ZvZddZ(kV4t4T%&*W^PaW%!EyU5 zxN0Y%>*D*>PFbMv>(P<<|AB8}`}^zTkg2yu7VF0-eH+dixDZu0(t zk&M)F6n1y(24vCSM;@ZWZ@uw}EtBzV1aaVbaK@9v*H6y?OZIJ$zvyww2`47gD0qQ5?4d&V|cDd@BMsS9KISC6l)fco~#q~z6eI~a8RvyHLW?y(5U z`^#OWOUKAo>tP+xIl5eeN_R%?`Emr`m_v zm*{=7<8#t(kb`d0c9a-)9$bT-L1jj|la!Yw0>PVm`b~=EQHgG)ZMuawj?WKX95k`w zbQ?WIZ)sV{--rFYUmLi;?<4S=79gaug$7K0D}Q&7t?AsS_-oywhknN$3)fu1W3`TQ z2)5iinjrGq-epVm=~5cQ1ahvEPlQxGe%B+m=XWoK#I%3p*d?5ABgpb!>_`rUaEn45 z1y$(xasfJ$(ZfxgMFfYaUCltyvk*zZUhU-<`|%rR>uc{6g4eL3!Q!4v6Pk8-!`Ul0 zczEK(Cc8yMD;hgB^gc``>dqhJg+Oyi55+yLn=+?gy(Y%7o~3urM^xG0|6+2n{!Tu^ zJAS?yu>a|j4cE?xELt`GVO?xXNP1sG@f`xhV9Nh>>=(%*v z^!8^^uhqF|_E6?gpD~C`i+8Z&zfCkkvUEqFI>+{q--m3%ce*zdV%=dq=;-aU_BI%r zctJDTi^r=!>Dut+=|+`akojh0itF&|fW=wu~Udjgf1T_eX~SOny;?w3omQv2D%XRtpgyu0!Q~_jI0roVmA0-A zkb*?gIr)_TBKt5ok(pZeRiiK)LGg}{Qyna)upB{u(A+>SwEi`~l{$W`ykAO}Q<0;P zU9N|7R5`cFTi|gSuo)a~%mfl-W1OQPc`>syLLcXN6ntoHsy6=j;dX{48RQXm@_bR- zrT$p-;)6VK9Uc9Dl7S8JbTg>7RNC3`>Qu482F01~n{UG0<{bX^nCxD{qxlo0R@cV^ zE8OV`RS&`fa_yI%0N$C)-*mtGexez*=K|mR*|h0-*?s#-dL!|9)od`i*F$SPTj`K| zr+erfhqP0N+vF(c`^7e|X)xhJ>8baZ&)J87E`DcPxoBZWje0_lP28iGwiZIyP>#VN z@mF(677%PmOel+=0=ix#rJD?EipjCS(Bf%`V!sDwg})9;Q+^sFd$fg zuAnqnLeH&F$JkmA9{em2oP>eOY z^gUTb0#zL!KDsS&67yi6fBU?|)k}=$me6uBaOzHs|HNZw$OzmOJHVE22F~Wv>4z?w zrc~UP?}XT3sKr12<_ABNr{(G6!aBLr3&mc%ENQSLm%f+YXM(cl(T6rRt=2f>MWg@Y z9)_kO+3}$`D23CKoXCE&wXnA+!#=yPRL}o*EE_Oocf~33Be!m(|a$E6e7B=8{f<+d&9Gg|G29_tW{Nq)HT23%wt}mc9Cg^0FIB z&c9UjTjE5|pIPHHw@<5wCV12nCb=(bKPz&Vf$PI zubgz1_L^OfDLGd$8=$ZzW@O|KiKYFLDqN?y$Zh{Pa+a-dsvbz;I8(4OjMRHv0*_r~ zZR@^v?RNJ=8H)4ySw8Ahhr5W+YmV(uxmKi2uUb*Je}a{&PX z3Q!hi-LXGL;+$RyO5JRFi6M2TfWmj5`o7o^;xqMBE#dYX+u1E)QfKUdSckl)`<`!} zog6|aQkKmsWq=MEx@bEV9pP&l-_ow1xX_6T15He3Yh2#rCN>R~(D}(i;_guB zSHYGmo<1#MZ)4R$s>idG-&N}3I!`Lvg&tRCrI@UwB%`qAzj%H@rzxdngw~AWPFL*1E zz*uD8I?U>WPM@w|HEW%I*TH@52wrwbgClKi+Wv?comR)7ZQhQjUrO{kq7gs!X`nDO zaOJ*ukeG89#H*gbFxQr}g5h>!+{)?oN9^50`mHBO8;n%XPPX7Z0qQEd))@pt>8sA3<>p5eh0m@m`|8RXa3LS8Io55n< zdP$Ic;}#nQ3;_PdiB{FDGby|s6l{4M9e8#Th>W@CLZ|SVPDW~t3J&|{;jeovl-0G7 z8l}|60MaT^efR@pd$%v)CU{ADPVru$QAh1R9Di8Ffkiu zj@?l*wvCDUc;F465!4&3TDb}|s1}8_;CPt%>*r9P4Cu-VutG*!?9-^lUUJxytYd25 zQ3J&B0*Hgwo?IICX=m=zCWhU2fqky#ke(USc4K7N z8f&L4`paLq@0p_7$GbS>SXam_TgjxBU-NX-QujJM_lXa`Rm3mR)Ro3Txub%CS0pzU z_xR1%oYbf@7yMSE4HpLtB6lM%sE}rtxxjStH8zTeJtOt|tD`K#++04WPz<`q`gZt~#f?v{>fZXn>B#a_lbT|zq^thl(9%Q^#)b1CA z-Ru+#s$q#5l#yH=O-|;2bn;C9etMa~T_LXAO_`L6z1-ay)E<0n``PXOH}0S+hCyGA zBqyN%GG4)6F!~mzD~ggjkdU{J-{EV+8P^$U!)JK1HNI|&=J4tR?J|N`MQem%~-a=zhI$p^B=SZ<=-Quw!kSD~V4L6}y zR%zR-T17DahjLuCUe5Grij`A(wO$G;|GZ?+zcXGUB)z`j)MD^(>&v4Wu@Bz=GEE7% z&q$3Xs4EJb20Bf;_A3jGYW$-N`HGj~mwVLvPsB4!I$%d;JwpSja5jnAPrr#==PNh{34F z7PpKry584wg?mm&iWoLh8>1BR_7*^jjsPxRym}2c$F7OgxsufNC(uz_+>f{wGkbwu z*G=Q-#`rx$>f_Z{zxY6i!163JQiy|LD8}(xR!aE{e+yp;MXug>5(wO&o4cJS02?i}l9+5!Pz}d!?yq;{}d8!DhliTlN za6|V;^ZgEaomGm&2PYve?#>NOe$ONXg>QYH{p5jMu=B^h?xkAT^D5V?;{W@Q;Jgt% zr%+&eR3-sFE0nepa6gsiK3YtwW=}wAD3Y)tv*)Q*=bI+`CvRz#>tWEB32A!dSb>lH zY6c2G=VVXcWMDwtWoDpe3}iChz`BpZsXPl!O%K7D)$RE@j_f@H2JMX0cd(8-*vj+3 zY5bZ0tgAEst=zn}LI~av6^XX(X0AE9f62Q6w6#KI@9F0koIwMnxP#5n5ZB2{o|WnS zy00vz3+$RN@b<&k2#3krD4AFlb5EkFg2L0_~ z;7b>~W{8t5jGhhM>d~<_K`o~aR$wtSE)PX-+64eBTfby|b%6H2SumRX1Cj)=mOsFI zNcrjyj1k}WWsFXEoI-YJs7}mps!+RYz!)0C&6cp8*haqz#aZ5lqjpPflrM4=Ik;W7 zfbZJA+rsPBnGrrBO;yA|986rx0<*Nq4{sa-u&s(OaIR2mIO+X6l!h4rIR>XzYz8=I zW>h#Czt*Rkf~$>u&e-UO7+Liqb1_f0v+CK$%0xFHlKv24AuHv)Kl+|x@c||(Z{9>< zT;2!B|NJR>9BKj{owkXe(VCV4LqeH=9eD3c0^7It9S_|R@{Rq`3@M#=3UF0o+PqpU z?>^I^!PyDLEDp57W!rLvCy72ye}u{}Ino|&b%XJci5`(Nin0C;<9HWzZDiQQCd`vl zQK|b`8m5Jf)V+d!Hm^->vvD>KULMZWx4C~MWN>u;N*_Adqt`ksLd3x_U8Zqbb0iem zO{>dVYGLjiIEG|(WmsdGGz8r*=@jx!+eAd?b)m>@i-5X|w0NGM>Cdyho zR89^ttj9ndK4pkA&dWtjczrFomk}NOirh6-pO0#CP5bU^ixc7^Gu#k3NPabz2T@(; ziDxA-PiY$NyQ~XqmoOd7b@(oRIY@=R$2=SAvG-d(GYy{Cuv!hI?Sr7mKc}X~e$KyS z8p#qq+>;skX9~5q_FiXJxvR$Pj2G9-u2W*}Ld8ywk_9M7Flh0SGk&Vib?8=5zm%I4wCBeMT-OuV3p6;r? zyeWl__twKg>c#&1*?W&KJC?|qTzk&y(MVIi>awvv@T*NK&YBkRhW-#9FV~09cM2fL2YnHnZ<>9 zoQZhpBX8DxXu)8V4FG#0e*KuhTnMDDq5}IO@Br?p5C_rR-D{2IhCK@zqB9a*(5Z)dWeqZbZe%PVFgy6L-xo0bXs-@K5|Q2^84oJ z159ZP*O40!sUzQpJ8M+OoaVP#*LMo{j;LHyQpP6}cBmbqeuuiw&RZ1{k|J4My5tRO zoSH7;O4%ol)xX_YvBik%Xf6FZ#XqCONX_=+c44Fj2qFLmETEJ9AwhCm%U)ElRj;4u zBKjC%(3fhfP}m0KVY0`7%rdih@s%bg$=9d}-L(zg$8EAC-kEBr37-4&&xGMufrf8N z+teb-g}m$b7UV)bd&LwuWwMQ4Ex8F`VR4mHHOz++qe?DeTtv?W*R@GE8kP~ z4)(k!sX|CZjEH|che2QYY;B`%X9(bw{`r>w5ebUr z{lUv+J>Y%K)0tqDpzVmhz9a>%Ha{y2A`Pyh+3qTJbVB@$8E)g}(19}_13e`D^Jr^N zfyj*9$i~H?9civBPM|3KLXsj@jQVO~V!QTpD1pw80gNxGB!fxS*M7vX17IW>fLk&) zv>14s7gBSsY(U6+PK-BOz#YLT+qus@J^M2Zmrm^&N&bK=S`_pCuHv^ut? zW}VjASsAR}*I2do@fKj;k`&?$M%=kYy|^3%V5sngDjVRV_VHSkwqJ%kO$q5s3Pv_H zJpWbijBKYX{X_8(281m}tvAGBN67BqSpY5B%O33^=GcptrU5qkY+{@U z#(uiNsK>Q|yqT;*utK_EU&ti@yR65wK{?8~_}n<~#!;dL)g<8W=YGlNeo7SsMQHEz z;pHeHxu)dKcS5NqH5iWiD`S2?1!UwkHjXdOOC}9>#S8vKWhLjbQeIVU?1e?&>(N`4 z4_kZ8$ZsDmYonE?mXmHcZ8UpOjXG+}tAbbZqhMlOeA)GX{Y(ly;w?hbt19+DzO{g#>3=2b+Tgw*nivn1tU<<~0i z6!)CB7*Ku)kn%Y8_1!`1#9QNBrFxNi?7chL(^*t3${0Dw35M-wb-~Ds4PPCOm4XU! zxHGRBXjM$gBMRR;3YzW7ZrmwiCL9P#=j~?;+O0qmRmMhhQW;c7XPj)>CyE%yv)?j1 zD!q~5{jvc1rPm{Ni+o z>kuK0>JqQuj3xIcdunS^6Wu`X+m5$t$$%Nk@|fj@L8XzXVmww!z;AxvdaPyt$$=`+oZyYCy z{sajB>xpL*VB!ai0MrVTs>g873y#*oX?30gEsqzU`w0W@Vy0_ zviSB_dILASzE|G_=G<<8<7BqN`8LS(4{j!nqM{kXRx~%D0#S*O3E-D?S!XMYjF<3S zx!qiI5d3n9Q#@+oE<<#8DI?XbEc^98Lt5`8NO}F4tFoE2@?`6&0~;D4Q5Wm({>|9e zIiZ2l8@0JxN8nVi=&d_qibV#-em9~TKludQ$a;N=7-ojr+Zhnpy#|fW>+$T5=FhNI z=KQO#xZ}7z#UtbLhNWQ#Xp=@-ohIW0QMBm`Eg?;<+Jvs&=p_pB$;Zy{Pdl&>^;;3J zpZo*u%PXbfbiS${KUc8f(X2WnSxV1~5_=y|S!adXJyq}=i+oGNA{uovjfBJ1SE?6f zVZP5rl_w?|zIFOpd=A7mBA3bra_4zUWY;8BWmiT(D8}7TF`->U z6bU@o_S)N2A-VCU3xICA=77E!$w~^mz~B3IqFrMT5y}%C$%iqxc_KNm8E3 zDKMaYq$4I2$7#$)RF@ty1@GgA{7_f*wz)tU%kfZJ_)nIYIL!Bf9lWz6y0FrsXT9 zaE{t1#bw1A?CW0;cLWHjRp$VTtVpwc|G+l~TQP}(8W1jyL)Ti=&y|!Hqm0e@JM?g! z(KG!uvYqP7x5v;gkkqfW(5r#3-`{p~ZBc(E8(<&%DEx*b$?ZY86ZVS98+Us`T1v*f zb19V$X=;HVc4j*^`_1EI$x2P(PEv&&~AQ-$9 znE!eGAHD_T#=2}QUcCVH`xD+sU6S(JtQCrGU(L_kw5YGm>x6L2WYTh^rIqh;ix$^F z;p>4UWuyEOE>F%@BOSa*)}sDKF@WKpfo+ePLmcsfy4yh>PpGVknD^K5xkAi1xgm&#fc4zq}Y=hGu=kzyLTj{F46|7HeF8#T`ixJbNA!-#iH}W zrv7@FZ=qO&hG@4J9xc1GO{&gM3F}O8@s_b*9$@o=yXK2vnbLI8{#89(W2ZVM?m}>u zfBL;=#59c9=*y7sw6fr1?l#k#M07OeFtt0ZS(Q4lVQuVjY@F~XM`BJvElyIeM&vPxf=AxPo;yMG&pdj!Ks-=h`zi47nO(M8> zDel0{-#f8f=>6hon&eP3*=Km9?%n=CM#ZB25a>RssDP@vi}z4fu!C)x&@@wF3Li+7 zL>_?#fEo!ar51Pi>sQOqXX)`b{hW zi@%DmbsWfy2UNuT^%8LY|G4@Ocq;opejLxtNR*X?GAkLSD6^6gSy|a96tY*cS2jtK z?Ck6#nVChBkbR8IWF2H3<8=7Hu5*7s-{0@|e?0ETeK+pQ^}gQo^?JUZ&*%H?FEuGa zOwX$d=v_7Btm9ofuL)cJd*iBH=XVmt$cj&_a8aPGIi$uV5n{O?{(0mnh%5R*ce?FO zT1iS0tRibufee&c(g&sh1ad9AS6*Sz=2|(g&xG|bDObATEVTAFW+cIvZ^OaXNxije z`T$wx>y~5D?Np%EFOrr*_KhngZ%E&bcMHN_#r?~vQk`=zl{<9|n0xo{8(weTBdy-m zZHi=Mvt#495^KyIQ(p}ctfGVZVI3gBi$D6N#q(RoLY;0s?M3a*twWpt0iQ!ypy zsm}<;`}@KXL^S0cD06+azC*zTtr6C>hOydZc36kiynF#;^`=WuVnYx6$?=-gki?o* zk~%R-$T2y3#A{1g2WWY$aF6v)@~|KDC| zZ#npVZoFCz|9KGgRASA-^Qk%dFx4H$y!D0FW?pHyy6mm6xX9yDS{BU4; z)$DH!c~@dgvB=~uw`P6Ob zXGhr>Mph=Q*iF(~I>^%AWLXoO6RKTg?D_Uq*nV-J8|K2*dGV>E1?atR-;2VT@m0Vt zsveAY5bespzZjI3FFn{sOsg)+?Mu~b(Nvaal_U6{OkYo=FMR^5WA>(S21hI^R!~s% zIc(5PyBk+#=MZ>PS`Hp3iyleX>ds{&Cx>W~JjCnsUw03La@45QCj{d9?O&|c z-gh+7O@$wz8r>-`&}i1SC|*z|!HdZkOqmO*UBC%OB0@ z%~lrNPeN%&QTo*9v_OKZGXO51n|(5Eqfr^uWaPa(I#_wDmY$8B(% zd;8J8N49xs9-hc%p?)GcD+uD7o27fYsnHM8=6mnN@*-FZsuAI7oHcoKIfii6Fo*ti zGPnJ}sOjV_*@KwTW$7yKZJvdlWMJiVvo9FcoH$T5d(89iW!~v+i(jp#AFsr)=e%I= z-6VUPad_;HKmub^Diu4{kCzO`=x>ni>W53OZg4znv-^HhZ)4MFGMfjxthDB8_Sw^o zmheP(@3$1KgyvYB?^q1)2UM&JU8p8n>4{aE7a8fQ%#XyI-fBw>P~cuK35bUQf}%@r z$VofY!@8?7>_hAvvJtV2IP$Apa=1&#H{2YqCEauy8X zLyeKO>8ZBnp-4nG7A%aELuwjqUj)g#Vh(j$Mos2iiYD(l!Wu3AMR>sE2@jAqj~?;X zT=!mZpU)0)?>HP+LFa#`dzm3t=NBF+^RqothQVGsG482n3+LR?V-K~_W$)~IFxd-L z9zlD3?|7IEHX50sxHR=!EA`%^z@$r&?gw~HdPOF(UsTTOjuLu}64yf` z3ASjhC9WJci9k6t$FY@!WsiieNMFq!9zE>*nQf7dvH!+L^@iu32Leh!&VA(mG&k@umGxkgF2nWm4GZ{p~^JyP;J zpBe8ih|3=WNVzRq)szg{L^y$sD~5eo=DrcyQ7{F?HQ*{ZWl0R>EA`)FlpMUctKuHA z+V2=bW)+p0VR59uNj=_RGNk#Sy|{v_xol=CF?))~kY>Tr?6S$h57s2JweP10c1qNM%>Y7c}KW048I3*|D zm})T{V_7fkt{Ca)S5|wa)0p9;q?^&>V=-m>zci!-RA&$9eQM*LGh^>&LBtBh_g8A3 zTyUZVhDep6GCC^Vn`QOmy7Zn%(Bt|)c_*JC0gCc)4|OTy&l2bP#M)F;Q*>!?TDctE z75W{nLrTW!1ZF^rtIHmg1IE|+#kpSa~X}qM9E^Uh>3-~Cl4l{_M%SW%iZx^<2F`o zZRlN%2VP}PMl1jPX+xglSuVy&l(JU-|n>8<8> zYFtV&CPOM_IJaB5oEF{mL0=#C;eMB^7A<~p;cmzepu#CcJZWik0_8{H))m|{GLt;1 zAYV;=pog45G^4?;5pUN>v1P}M(Ea{YUrT!Q%L4; z)hZmo#UuF0gbC1WTV`f_;_a`f1@z~^{bzZU|21`t3?q_%yzv8!Xg6f#0G1uqsLJ7) zxHq$?he3iT>Jn)@m>Te(obAIKrw_$faD)MWPuU1wj9XVd%a|HqkF$U;Om^D0JneO@0 zqB)g)U1Vg}?+?!(r5^64px8f)lqzPC7KQg1OQKu;s=4_*(0Dtnqp`FTCf6cuW7=O+ zVXDp;!(~q&>^tw1>AX-XaGczAJW_aapOc+yd-QwnsTzCrEsn%$&A0yR!5(qDX-#9E zGyUY4&`E1^(*g__n6&j*fME4|9xA5Mq9RQ0^#Ie&GQkApm@E(Df?1C+0=BoFFcV^tenAML$A2f4C&=BB*C) zbhU5o^j)->bMzN|*n`TEknSxnDMlFrSTHk_5Cp=ZN9A`r$J7Pa0_=)IX zU9wU6+Ql8~7$PFkdH26*1l5g9S${ccOf}_VE!63-yBvv+!5ei)v98y>AW1l37H!^i zzwO}ep2txuto|iyeSYtTB#1tStvWmIqhl9!Kjg7P>EhLg@+K}$tc6QL2?hRxBAL-o z_q%8=p7%yYm<*jwiqXflVy7_~ly4?Z$a2okjbv@W0#d!x#QC8*(JF&wVS(}@hBe>( z+f6imhpspaw(~Td-K}9hK*YhD%cAvRF4X%09VxJClg-obNOpJ!?H<8QQsCd3Dgg9y zzV{oYo5@M6KA@=%eKYo^$A9Ku6yKY90meUCD`FOGxiTAqHdAzDP`>IV{&L~{J)tU3_f0mX}`dVO%^ ze~o0us($|p#su7>#71$i zp2p_eEcxpBoy11n82$oQRd*h>$O$>g{+B4#uniFTDF(Rz@!K2g#$S}IuF{HvJ+!nGYlIza|FPBiZ zWiDn!Gqod6wei-9GGKY02t5|Wh;ZA_|Eha(jI*ua)#8LQ%wC?oAbTkhW+e)|UTV~A zJzu+OIT3II^OQR!ZFUrRg`AaoBmJ0Lhz%OL>7w=;4_iaVK(Q~A)uM!GEbz%{%T_{2 zp$39=%UM3#B~*8Of5Xmjou^US`~GKE>&0XBn~Yf34M;HV@tx6=1akttp2`-#p%2>A zmoWO_IUU{BP~aZw<`wLS2=`s5 z!lCwRXTXtX&~=BHJSe{ca$DArc@+c`ePBLj0M-iy&%aQVx3l3p@s#^ihUlIj;oT4^ zH+>6gnv5b=uRl%80(Q;qGNOkTu_eDGxi&N?Gw##Y=#^t7PxCsZ5EG_bZk~})Eb$G- zklb6;;03nNTlQv&Bg%Zo&xJZnqE{dhaRAxXYKnBd|3zf>r@?j5&!`9A4IosHoRxd_ z<)7(6_?}i-H9E)%Phz{C4*dWdd04#G<6#0EVrg~*Zp)a@Q^cL z%DbTNnLo^koj*V9yIrzUj4~@>B6n+%EkUC)3eF7j|7MhG;iO4){(^#K$jppQ;XmI6 zkTnNoOQVe!=bU*%=f%o88r+}?HSTT!0LRy1f6oMmmC*=e8>JRFy%kX{jaN38eh|5z z1Z@iGNNtJvlX_4$lLQf|O6c{Gmpr}$2+1__d2s9>nMkp(lGBhaE$Bl!*RM!R&OlM&ou?kk-#Z=#5O;_k)n#r+_e zNM+*dnDK_t7l4s=CB!2lk0&s5uU;I(O&BiBp9P@Rf(`vnLKr4+#{GaGncX=2%{TOp zqu$#k%y-abdf&@tcyqI2OF{bIEe!$a5D`5Zt=zX%YDp}$;%s9hdn*&kn8dece*sf5 zRQGJVW*+n@nLxv{u)~1Ez$MU%GXdinb@Y<V3go1U zN41k|36k1|_SGkgdfO*UpZZzulKg8^5X3AGf#{5Q@gb4rz#8M-g~s|>Zk`VtQuFu(`#)-2XsT`q zu^HJD7~Wsack8=^DJU0_0f@wEza4Z<3FP>#W7+Jdf1$pn&#!rVSfiUx=ESueXjPv( zV$Ub%Ea$y^yIOteXuHzztrpp|h#;Bt%!)H1_?JFz3Dnm}V<_;ar;*f&U!z+b@D(8- z^(v5!-u~OhlW8Qd9X!j3b$$*+D>x5r%lI+F7u~It^piAsem+2#oj@jo?ZzE+Q|T)Z znr4yMpWB^@16!~CmUU{}_0Qy3i}nwrPgi;eac)fWS4BZvaOwYfsW>$*aIQxTcg;Z4 zktj#$jrJB|rTmy421k6UTf*XHmzGAwIkh0)uI5#H za(uu8<~*3aW^w#uVu4dpM^%U)Du9`#0?<7-#r>Kf?%dwOMaC!Or)hE5Aoj9JSP1>o zSrN0HV`deg%GhvXd_^m@xxYMl`!Pw1xXkmZsCKeV#tgrZ+3e+az+e-DqT;i!Kb|tJ z7V+g2X}gn&9fST_C&zz1OC#|!`9TZ{X*q$)6H`y$Ffa6f8a^ow6t^lbMQFHwk%E5G z66NDlG`MRsNNBB=o(c`W)qJppXSCc431IDrQyaw%&7JwQut|AxQ~T!BE<8IjPKxCs z2rG=O${5=_0&$0o5qz3LO0Nvk{Sals+P04IVa)8_Y*|zM`U$nwT}ANMy?cvCPIG&K zl;Q7_p;u~STSFlZX#?~xVoQUIxY`QpAJT}3Bn)?Tg|MI|EubPLqr+K6SNDDE)Jv3E z_J(lFf%z1)j%8pBR!@#O*Y2DFNM4%G?dlodaLuQcS$sp=UTuIbdo6JcmoWV6I%cxo zS2bh(2b1-!9TsMM(vCari_*p1#f$wP8Iu4Dx^|Hk7bEz?iL4}IkP7(bnau}h@u%bp zgXVdWUNTN3_dYY7lMN8Kmtxrv>1wvU!_V~6D>9*8qGHua^UIWp`o-;bqqkNKW_2-3 zdubX|&F@~YyR#ec!h$Ry$DdAEg4yyB&OrXKvrb5T1^_C^3lOJ5u{zC%OVt>qH$gH? zt92l2>IdzVAsa9d1+qZDkgkUnlX!ssID+p;WXAuHyj5-djI5RiebjOM_wbYNWm*jO zpNs~~?1AkQPpY>P<#|&-X(ojI)PwS}6TOiD+HZ>^rM_XSDA4a2B2(9rvjsn>%oq#N zp*>PKEPTxh|ARi?_h2a1zcuBvMb10b8!mf06U-RpNnwaqfzzkCnWyng+CszXo)KiI z_S@qaqVD6(2PC_CRSCgfq6?g5n%2Kduv$k1zrMP%e*QR-{7^IJ1$fNQ}KE?$wL2L4lmaH+d0CN!P_&$TM0EgCda{3|TN zm*9Afoh$f%H_^PU@pfi!^@mLcYq@E<9E3}4j+1^HeNfw}4VNXb@~9B|f(-x|YMZvk z9L@hMufncSk|q-CF(CX!FytxE2u=S_HxS>EVk7y>BBn8W`uJyd zgydHCRt7>o2+qS_G#-QSG~{O_q|}&637v9!pV^rP$}L+~1Z6ovE=&aQ1sQ)JBxV1c zn-7Q4=3L1M*|3p8YFleVOl?Pr#Uc`itIG|7XoP3E&w-D2aqDEp z+Fax(OyMNrdc?$6p3Sx4{^_R1lOr4M4Q9?1-)W7P?6SZ2_L*(VPGU1mj6n?AkePk` zJk(5rEjy)dO&QLeKQ39{w)NkF1fwB@V}?J9kEh%ct}UMYDx}DocdPB-8f|ab&se{( zJwda_gnvhZC~WPMCqBQ~5^A)@O;j*UImNGkhZ= z_D)vqgkFOwbmOifB@n9!&r@l=N$0$yLVo0dexKFlNA zC~gqe7>=`a@3-OI9l-HOpWBEIq8@%8U#5{NR%ZQWX?M_F-7{@b+TRK#(oZ4>ryHn^ z1&DbWINw5EWWT;t0Mo*y1l=@901O zClYts8vj(h(gZ%*)o(pfs-WD1E<;-J03G|jvc}%(2~DgOA=39_C$h09xl)b*sSRek zP97vuOkaCUvJ8Gr0NzX#C%N`d%F-5=DbpGS`Bt{d9Gfm)>#h7GPL6*y0GkX=+krZ3 z)dNAgV(4+?sIV*nDxK{uqZ)N89Bm*WDAU1tF_|FZ?)ZTeGl@`xI^KUVnB)#FEIo%w zv^+`t38oe3w$hrH?(+r2%={h;k}X@)4kNO`Sj#yYl>e|yOXG3uQ6J5%;#~unYFXx+jXdVt)X8J!>ea3PLaAU5Dr<>6ACxXfvnd?ILtmzV(@GoG_c@ zczlCOky&+@4VdY*(}6}&8K0sp%|e8tgOTm%|9^UoAlk1T)$7FXNI}MSBlnZg_zZE8 z7yZ9x5?#vy-7+>TL#(O#?}^DoIm?yaisfGQPgjcy{Zp-*G)JhAePnS9bca2s6PAcMNU znS1L+L_Sr}?P5Z6&o-5~TJ%fKfg!}=Zj0j$H(#xTfz4Yj2RE$0*Z@EpGR6&Nj@;vN zkyh-ZL9Ru8YUn2Z*TCPpT6h%*I=8hWbfO*+bTriU25`O8{C-%DD5$H z60itmX#lOS0N-dzo#d4%>wlDirAl-1L5QzU)Y-gNf8@liY4KR+ZPzO#*0J{kkVh2 zE7-$oWxc&+H5Cc9^h!vxUo4peA1}g>`KU&30lu9p!vm@@SAAe+-9YBt@6Lu57VAzp zoV;I-{tO|#Wan_Y%KY$m%26Fw`1^cU3rjg*z_~4uNk04ii|hUO=dnw7D*`8KqzU75 z1-{717v%{yALq4xplEkq!WQvW2d$wB6_k&{aQDj)V3h#luv=Z*mA%jkjP0zARlDk& zMtWGTUtuzy&)4*wN7YrpWPtUH9ya4xI5c)5QYMX^2M_Etb`C*^qChDgf#^x(B%VTz zfmKux7o+V-TR`ODiLU&|Yl%jdR-DfXtk~YGTE?yG-D#$2*0w{AuMNtZsu(~3d@25s zkztas*$sQ}X4fvr;;UCz9jzVy|McR2y!xKf;FT~A&wb7 z+qA_Q4GjxC);_%1o5N6oYziRctZWa(<0?G-^ad}U452KXC!bY!q;i<1>*4ZUH{tz! zjipAR`H@G~GVNf)R?V9l4ZJFqh3nbt z*#x^^;AjBKcKj`d+`ZasX!;^L2r<8? zh|HYDSf!r_$mXG8@Y4$gMlb*F~=ruB2zFzUDK8Lb>U3W7i8k#kK z9Khi}6+r$?9Sfk}#MhmjD+bv=S zl6yF1*fvU?WGGTbx4sN6)2%^G8)y;irYxJoB++p zfMMSd61eeg+TtpwUnx3DBNHwot%BC{9Sb&N;?7=er<*2}5eyTxWIa5W(vXP=jPw+Q z-h5O$udJ5%CSFh#L1gKi16Ajz3(IYQP>?l^$4^cf$A&qD%{^&cO zp4Qa71HtQ=eKcA%3cQ!nj(y1%7oyS`%O)2~X@kZ0%>bFPa*7^Q; zkY(^4wz59-ZjiqPwv`vOA0;o~e~H-0WePiHPO4ry=JuTMyu|(R7uhJxZ-fVaa;u|* z_L+6^f%ytMByRIUzB3z?q?cm22ut)Om{}lKC#v(Ff(22Ng3kEZ0M>E@;|=PTz}VU5 z!9>Lq_+RQlGAtt6Sv$cPSj(4a$2g zMK9?f7^tOM&JlK-*}f`DpT$a}eJztGUj;DL(F5GWC$TA=DkSs{&xt<;30i9>628W8 zwB49g*HHyz?*|=+aSsrn?#et1HYN)l>@a<(Oj0$|cQ-z1mbS-ZRHIO}YnR;nbbj4Xo3Q~4Y3r!CRRN};e+9GE5I1ij0D>1YsIYf?f(&wvSIq~uP$15BWBf0i!3MrzB2 z*`IxJkWTtC*2D%hJ4(FJgpOl1>BK^=f$jNb#Zh3nKH*?kJs0!SE@fH(z%`LM6?wA> zs-hk({TM1ZdFFs_D4C25o_^P+clN~Q5NJF9JzsWMW4AO857fBHUF%~5VuXb3I*7(K zN@#FbZKZapaWM*^v=YCloYx-8d6N-sFt8sBXM%Whm8vC5+#XScT#2$VHf2u1XpzgOUADH0~?{_ zp3=~3)iJ8wK5;{MtB{V*Q#uuoD7QaL3QhkUU-ty$2>;#oPuxyOzf0H%E0$SOAPFRu zG^tq}K^1lm+^AeM*kc_yL9>~xmL2gF&e_JGHRYf6p%0rK8n*wPp*+|WX+HP)U(Pa{ zsQ}HgYU$`9WvMEZ^#>Tck1mKmeD|Dg2KO#iNO;lQ4D!u;Mb;7_%o;?nnCm{GxS9MlaDO`;YRmlhot6Q`@uI=G-BsRK zXx`Z%Z2*6-cRaAj3%+w8l33Z-kDX@eDxDwR+k<{obbc`X!5r#nfTfMzvV1F|s*819 z{-)S`;C2|!)P{O?2JMJNf4Q(QjKv`_WWxxGLd8hj8OlNl-DO5?lUu#1dObF^l$nMCA4bE4aFrf-UY!$*-d<>5S__5!x(D2_Wpuxtk zpTNr77+raRDA`_RrR+-?r|F%tn2#jzf=8@(tHd-iwjH5lUNc%=vvJn-|A|Rd^4tD%vze5ZUf9FG`;mNIT@I1aN z+hhUIjDm&BEH{Sr(TXE+T^BF=^gLqnx{XUSEI~5ErMZZE zQML~hKMci@Fyr3)iL)T|S&6BKKUexAb)Z5gjSn7+I=1u~=Y*Qv>8e?JkDLYWAB;~E z0~%)-aXnSYa+l9b5;jv^^%FI6 zZ%urx(c#|V%Ulertht}tjP^@U>ZTnviH{RaXTcEOngY5ySJhwSnTW=$`m9ojrvk^h z2S3Y9e5l4g`F2t&&$b(;s?7x~ zT4XPcxF2nimA`q<3Xw-AP24Cu2~w;Pjh4i(X)o#ywNkY;s`Y*zFZxtT^0fe|kjeLR zr<)Vk@nv{ge*{U+It?~Zw_2*nM+1d*lHdX>Xl)@n+JP4{&;7fz!sgM!ZFwtFneQYS z==gqEMkp?IM?u`fj$#aB#}pksg|r}!SJ{)RZW5&4YKIV6W5*s_#}~DA79fKfc3&jj z98ZbITQ#@^XG%QId~0$Fzkxj^@f%b_V%JyZ!8&|9XG(SW)~NR=CkGdxf3px`>8=(M zz5dHvvuM?d6LyA}j+J0yo#mBgl{OWSeWG?2npSy!$^b0g%|_m=RwFD3m#1_VCq(iM z%elz@TGMDjm7_geDu$~I$rxjQzd+XcMy{(6B!Ws|6Ez^jdbRS)4t#&_wynl70fpm;^qUNDkZ%kkoN~@z&)!3_M>vv^)1Q7$)e69)#P>)R zkh+Evgg+}&MG)Gu&ez^Wz%W=^>gni*Bkz$QE)y$w8i`84@FY1N1hsyPzYngs1p^o0#g}ebk3H;TWptTQ{*w}NykYJV_WW+2 zJGxZAr^MRZ%?F&*1~mQBG6cIgKcSi|&>DIw7ofld*BSg!t84kW+nf6tpz%5Df7Xz0 z6&jC%$y$*B#pJ|hc$HE+1b38hv3=)+x!w;v_U9{FKtLuV)(x55Gi{T$r|sC_%C zcfdnj^mz4_(Al@5OsL6bp91e|i+d>R@ytuRX>d7mn9su3F>jx%ehtHk`e~btP4Y)K z=O*`MSoS776?ej_od}kNP9l=BOG<%Bq>^2%lCr0%3u*1w`qru&E8;9;=$}TBMaAW! zGP-G`11&b>uBwx0fLFZ+y3B`L%hTKx-J`RA&bohF0nIfVL5sw;FSsaR39DCDasvE$ z-vn!J3D6` zU?odP3%vrz^Gx#!+g2)hv>XfEL+Z_d76}^ZUx2)(qUEM$c5MB+3zefW&=2;W=ZlMq zf_A_#FtIZGKbL;Lk!U|R_c~QK>`X--IbQXym;S){v(K3FS5iTwXQU|w;pf}e&@ate zsqGS#<@VErnnjlL7y(zXs=wOIOJp+fXygOZ)EJByEbz@(;195Z?JDS9^aIW2uN+yJc4b8<5;x+GZ|J6eV9>Y( zx1>D|4wMMeMfo34+Fm!LK3Zql{syj+&VA70vtD$a?;-wQ8kmYAA0?aQJ52M7Px9%y zfp$3u@}9_1U|g{UsMr6G3-J30pyxpLVs37nbGe&{#eBGcNi^pNWgW0Ns*WtP;rs5S z?s&w`{OB*s^soyf)+9C{N6yx>81KD7pTb%>|X5{gAd__ujDF(H)7z33<=vwZ1$6cmBkp^ zZDRN5pPBZeZD}+uq7bq`9jYF(Eq@=Qf6JA&+aP#lYn#UFX&NbM)aPSm54;*2sYv-& zFWALS)co`i{JZ;Z*0zw=F1DMeSm4Yg`K>KJyI4QMwyj)VV1S=fqyOLJ%AL+biOn&o zQ+?~bgg5);3u^sBsY)WK;Ie6-e6!r3E;Vo~c+Izn%kZZO?*G7OUsl;h(xzt)hv{We zxH!W|X5A-r{Sz5};YNVAfJOgtdfU=$xTuq1wf+;-d4y5Gnp~95ZoUMH(^02eOxWcR z_LJBS&IZ$@a#L*mqi9iBlSB;^V-M94p8P6+i#tV$8u&>5LdqP`<5i~ zyB|C)jhxtd<{};~Pe(zF*ss%G@D%{W3qqa&AJH1H^BXxGJ8nQ2@P-&fX@QL6tQo*H zS+J4h4Ve#ZJAvmF1r%IL(w{|A;qER1GTU)}HwUr$;ISRxw!)VA$V62s5x5PFN5v`d zkx+_Y<~Df?Na14T%Sx1-(F3Ybc!`|U4of|P(1-OE`3ZWu83^J4^1M-%5BtmQTK9)w zb(F9fEz|YB$nWJU%cAPDrAvMjQ$dxo{gT#5-w-sIj6>DO zkpl11r(5r$+4!xoF`BHRL?w?eW=S86A?!iS2IogQpA#tmfm7abLl74j>Dwl9VeQ~( z;nW)G1ELl<@eR7tyy9B?>cC_Vxct)1+mlVv>kEN@|5U*L#dU)h9d{HV^$%7D9fIU|x?ozf{nE zyyDB_Eb-O2&)Y>|U=ef&G6}Dt$N$8nuEX7%P|S2CjwewE#j|(icAKA-rU=GNwYi$> zPTyvOkO{`&?E7-l4R2(AwBHzR>CL{*76%J4wC2Hmke)@SZeNpt(nm^E8D{VqBT#HXhr(X6DYr~ z(QPfu9zJPR#r*WVdh{httDFEu`fRMAKv%AGF`5ObWK($i*TZnfR0xFz*AeQaI?P8%)q=;p#2Ss-EC?~Bg} zT&Db$ax<9}ZsBpOn`>@-qDI?Q?+K$fzqm7y(w+S)$d_cn$d|Uso@ssXDFyB>Gr4!_ z8JqTr3uGkWddJEQKV~olEbNBLMT)tGFk_u5tyF&e^>RvkcN6Tan>iKTFC*&jk8YeR z$FZ?mnf_1BhQ(9rOiI$TfOK;!kX?LL!S_9vM0o-jL|(skABaiXH}>MsUq3ugvq+sE(~vC+<UJz^cE2 zW1aox4}|r*NVg%}d{A@KUp;H$_0UDnGAEhfITpW8bC?l<$h;62Y8u7 zQLO}H(V_hUwAmACfZPS-9|Das{kRS*LgUj$PqJZXw-ZTL)Z|KVfA>v*kRjNm z)#m3nyPa8OZk8$DaAHde$2_BW4`m9bdvU}l;vTqO37|xN=97Y0mzAt$U6CbG)d-OF z0c*KWO>b_^{*v3j^@&TxJwfzz%*U-VaB>{zEzKypuJ!c<`o+YA^lN^Y(F|d#E4wC*s0gT zDa<}ww>=TNAbD7yahve3IIH*Vq)Wcwzu?IrK{_3%^Gl-juu^fe1Ecz z*pRjO@uB@U9-lQXU5`5_h;#aEId1)Ls1#GJ`!Jx$o*qj9mKO3JdrxH++;T;yu+kf zmu^NWWUnTtl-JShYO=L7!iC0C-pl&Vh8l3mOAYCrFRHT88^Sbf& zPvnel$GFBeb2qseZv{VYXXkGQLxdl}(#^k~IsXmcS^lbv>Ps^Ay*1a%=UXRUxu#<9 z2coljXH;>IUY96gPwYoK-C)%!+vxuCKEKwxg|(wNf-rtBTS2O>Nx6KU6Q8@y%P(%; z6VdP}S5nob%@m0Zd`B#VQi6`_@EtidB&&7DbbkOWt#hDq957RiuCuQ^TtFr zX5{h0x|JBYeU^JY0=RG)0oeWT?=}Szc{<+&mUzw82+j zTxVuWHpioVy83?Q>Dr|?$$oyHYJ*}i`AJ{LBRBsFP&>30%!R4)7#)KL=FN`hQI{)W zh4xOGimPMe_Ww?mKE-^~^>F8mqhQhh5k+4~;l8eu60}QDDXI99=EmxxTQJkFcxCH; z@~^ADcYoV>8qLf~@eJ-7>`UD~!69eA*WoGTdSX+dB<~t|)Gfz)lt)u+Z;p^SKIPmP5IENkb1MJDNxX$AEzZZo7H6hD;T_qG#7JB7< zK#kK0@A+NnR+0h_MRrVT4F}~5bW15yElhN8)xsi23u;!(0*B&Ou#@l`l+^3F>5;2< zS|`rc8Yd&oUb}sm8MjQG>7iIB@7kOAizBbbERm&!_;4OKPV6J{twJN!rf(SWHx!rn z62q+e@93s4-;g$pkm%+<@`J0GUkqViBt18?SE6V@sc@Lk54kgzRdf?HO6w0p56ChH~wqGMQ-SE zJ~IYbPp?GQADsY_D;2l~?KU#tpZ$@LNvHXLzc&cOLws!%M(MKBQnvEiFui#b7oO+8 zzPR{;A2(t)&q4?Yvm$;`nAQBLf<$A^bTvj@&(e7(M?QxA32sR_E7^|{O6Pid`=!J@`kO8ZQOL+|DX8Py5K8;y%B^8bT*j0(H-)}iz zDYyMwLpE^GNnPVkdSc7oPA+YU{C3#$p|Pt4>z_^r7Ord0=MP1(xVfjAC#xm49PKwd z_|rba)E1M)c0zYvVCHpE1bf-I*;Uq(CbQ&&^~a%yQoc-d%KWMda-`(HVsrIX^Ae&l z`Q=6C&+M}fe^y@%%?kTo8;a@qt;!>H&Ritl?*q5FT)Xx-mG77MUc;@=F@LhQ+o^pO zm)wkby>#88`+T1m2%bhpD=CcFYg(Ny=5k7<391f5b4qIT?Owgo*|iwF{1QihQEy(B zzC!lfr|h_;LPca+J%v#rbp1M8Bo)P1)ZK~vuIkwL5{?ql5Z3OIkDGY;1y|R+Lzmv7 zEdQ)WkFS5KLpH=$F38Y#uvXeRn)@FZoj0p_!B*wcp*x@dINDGo+3ITI_5p*}HIMxg z)`pAwd~9MB6}m5w#tq0LFKvAP$eR)GdVKlwwRoG0eN$db|ANBU4n$q9Ce9ta++Xmq z&6aCzjJYnuIoGQ~oWL~00=O_Y*~!p>unbSZ7kupB6BMxX7FRpm#rf@)lIu3_!W$g3kc~ztd!~&uvsxj% zuOP)Jv+oi~)D&?__U>&Ihv?OQ2yYNELK^!>Cl%9_G%-6h$Z|%diSOpj@0{Ds-Wjf; zaoYU)tI+eZ0vW5{&*E4Nk#A|VL&oBb)@Ae9fw8RHix#BezWHqB{JX?;>DxMS8*Y$o zok$ddwK;aBuo%O$Rb{Oysdl7%O^IafJrtKYPUghp#Z>z4{K_V`^x=7~t{_E7#% z$GZAR4msjurP0V^=QX{O0^akW?4z4U9JV%Ut8Nw0Un{KFd8mhvD$U>U;h}lCU#Ge) zCAxIif6ZBc^WIzmE}!#=vGrKgzk%V39XYLhjB>++cWdD~jc*5>BRLA$e1<|Ls~?2h`-{A_6$72BF{!_5uNzu_Sk`**Vvh zn3clt!k=DEeDZT0CD)%QR+`Ym!m(#7HkmnrzhZ8tv*h9BJ*oa{^i2yYw^CQ`R8D%n zEwhjA9o^7y-{dpqWsh~nwvip|P0J`BXE`9|68&qofoO`9K8BieH$TKt#Vf!tO+MH1 zgyC_v&b@|=>RjQ|2qmm-6};Z&eVLJ)-q5EvNdAU=QWq=c&<)E8U&yNZ zcZvZY*m_{?e@Q4SHrFG0p9$YytNlXYHdpzDVSVqqP!*<87I zqSfzgxm@y-8z0^I@Wjgr;4q2L_-3-xg%ed-h|SfVXs=e zzdCjpqQ(7jyDa0YB(1W^&yEs&abzpAdfx|bKvZbjkz%@hObACyKPKmW7;h?n@YFQi zS4aSte>-FSczCyK{NkYEk@7MjZn_wO+kaujG-mQ?`Mj5pB9NN2`VpRwyh=^QWb|L$ zAAF$dbe=YlnKWGH!iR*LLt1_LJr$8@F$xX3bGK6myMh?>+H%Dk77Kn3cQLe4D@J9W z3SCtBowcFkXn%iRpuyNDIWOOQysR~_aF6@A_L;e>4gbH+t~?&fJ?hU)4`zzYP}XAX zAxRQ$VamQ`UqWcQ$R&zOjBRkUld?;MY$ZmEHgYdQC1lcAB88+86{bwXd&Yh5egA*` z<@5Z0&-0vfe&6#w-*YU(>WRsnjh5kkzuo8ZMU(R`<|E#VKlO4<*c}zVh4iDY3PF!> zhSsK=k@n|RhP`|HC8-^%HkxGhTUZE6F@e3;rd_{>hh`Ickl8e6iRJ8zrjI4YR%@{N zb3Jb;?N((aanh=jRWAxtyslmWDHTF4nYQmpj(XbjHmUhskI{@)kXv1v(V&FXz1-@p zZQsc6!;zPe_^hpVkV;B`w~r@JHeIj9v(wOkii?L+h)d^u>D8$ysD%e2Bzu~<5Rgq_ zu)i4raX+6Tw5|{#dym#FF&K?dsyP~$&MRC{n0BP6jrlJ!>qe5{Y`-L+5*%4xb1vF#^D1} zSBqijpm=ZPmXMZL`>|*KgQ<+(4J78&q-%8&J+IWFh$2j4vNA~JoEud|&Y&*_aAhHO z#%jM=uUDr~po=<t|2ejzZR1sK@l!aA!>h7uEgWQVwk#1Qt|!8|ZHscWUutISeMRXV&f))XyU$NFLMKsZf$$V_kb{o=g# z0B8PF@Tr0!b<0nm;>#T(n3kiT0Ab# zps(bokB)x+^!!I^fy7o5V(Z^xGS9a6Xt;3md+gHkgwo9Wm#GZ*GPlOSL(ICETov8N z86ze$`#0}$2$dmvdU~u>60lv!AmoB6vlqKFNt9gjQgmssl1X9OJe+dg7H+w%OxE7O zD8FFR1e3%uiFF*$Y`p|9PvWRiAFBs)tNKYLXhkLKPhKaiocvX-CxUK|zIi@OcO?6t z;y$!)i+YoR*iV;2)FH3J-E%B6sJ$As8(w~LTtA^k{`I3*PijujwU?-IskY<83?wiv z^Bg7I2XsK~kl(jn6nJP&{f*fsGirB$p+bS7j`S-~MGfxft~%e+-&x&q)h=?=L_1$? zr12ISYpQ0f=I^%KM}sBL(^sd<7a~^lv^KFftKE)|)kKRFYT6bCq_hsb-b4#liS~=v zTA7^gmRx}IebH=yVYz6u zx6HkR_UfxcSVaH)GJ$MW20Ce^x(j6UH6uA-C+lFy|!- z&a!&{7Lq$*2}2AaT~ZMNi8xOYB1>l}FZT0O^LpOq=9&%*?+t*R8?ylUj zS(KV?n~sS>EF)7Qe7f0;XaR^nE_-WR6%hcbQ7)nE`2_S@dWC&c8*}33TP2;OW{d!bOYXK~+m;B7kDa_^FE7R2WzVqL+1zr>00B8)WOw(D za}^Z&yOVq$bQBsg?cWgi+FLSocBk-Sv+DK-#x?=e zcz=i+Ll)@ESxfA+hwfxipmMXJR0fJ{;L%mkz=u``qx8zY_VNDf;+#6y#RsiA#0D!A zP05hhKyBsnyLPLMqcK#V@wD3OcR8S>>J|9J`2Gb25A_JfeG>GT^-h2stEbw{Emf53 zA4799mI1)o=b3#W_6E0>;r;{?Z4q~}44{$MA|ftG(uE?PqS10_k$Qqyhs?!;M7GMW zpNT`pnGc&cdOqkkAnl45;M6Gf8k)HbKcfGwU-RLyP`GF6(&~)5m+#KY&Z&XnSyu~B zkcoprU*(bds&OYi#vi-IwULK%t+HQsRajLEVUEmRfKRS@ukbP2=gn-hrr10mP4M#ddmBw%nmb)kFY!r~qFdhL!a##iC5kl?hMhB~Ur8eo z#8dy9DhhA8IDZsOnqN?d{l1elVdZRD}k6xhU^JNh-ZnR5}OH{8m)0+BfX*VOf-zq|X zmHxo?dH#>v7HU}w5{VC=pI@@sj~6R!{V46}*R1z(ixAW%Ye}d4*LDleS0Y2Eq>Eol zKVQBytKcF^sfeb~PoObs1h77Ly319@Ru8>?f-=U;fdkM3246MSKk(eN^6_!_6^Ik@ zz$qqI#HLWl&Jai!MPwaObdP{p1?@G!OJ=fsGpW=WqU`WFQf0d+tHDVkUnMa|?g#W} zGhABJE?*{4D)bdo7BSR9DE(Tdi8KLgZ*xenae6~CXZcafgU&JS=(#(Uo*{WQkhkad z#AY2T-HSe(r>wVYI1z;ejTc^yye|Sc6f9x{&yQF#L)S#QD9onL7ganhZ03T6 zK5F|<3@A1k*46*&_{eG=4)U1YmL`_!mB0GAWqQrZ%i;E6X7L~RSdt~eAiAZ99RIUb zjT!(A*T$r%?Us`?#)wG*qw4(j_0~n`y3B4BsB!cz&G~6u* zqNZRc*GE6>in(va-;+4|o~`TL3$0y<4ozBj*vh@pRc1gm}>gMeFr5HplL@e0TVthbI%*KF_dGMk25H zkf-uMzT#oNdON71Yu+&|j-uoH&E+jFEpvj7LoNLem3RHAIxo8{@YoZ7P5sLGy@F_L zm$VVzc7)isgK7(k#&6ZA@5Hy?H&aAuz1v1SJ1(v?cMYf`Pi2Xo=Q`us17-T;sQAA` z!}2w3nC$L7?W;1m*eHYW9xGxW2K}{hxd_(8;T;_^U3-i%k z!RayWUrA9{fP-5eSO!3X@k8r+K@%v5f>GvH;z)Sa7=bmcyf_|7QSx(6rU14r6a z(s+1B?$AU1)vFJlDgF{AhxHqH?CLmO`<;FH$!eap$6QVaZlknaj21`ajR7UL8cxRX zaBO=`5C$S|ILhE8BVczrQO*>Gn6uwDK}gm}t?7^96yArQGaq!EfU3=eAV zMZ<=ZM#=(cpfK+!?Z8maGzkp8x@f)V!JI5APu<6?IbHEOr0F^EdhTgPmSHI$#vEcs zpty%rsrz7?(`C8K%iQJ8i{hlxvlu_%e7WU&75XjNGK>2nvM->J6&YxTge`qB)Ir?n zChlx`KXenI{q7J2E1|fyyseOVAHUCUm~Na`>LHG3L}olLQrh@$_CYYWf#RaCCb7HUIY-y zw7sm5>64;fij!7cmYjbj&XqgC!Eg7FK^^3x$kNY?#vrKahy^w}pAme8-35(Pu$5FT zJk$^x(L}7~iW(uW{jp+w%e+|4qH+To z+b-lSoIYh83=cboF<1?H*ICE=WNYX5cBvZm$GcBRVen#cAP}MRk_S%2gJR)Wk*CH} z;`=i1?kiA3h_(;}uUz#y@b@tCZLBtA^vG#|hYzG`u?R00()ja6ARf0vl)m7$K*D$m zQ7T&43Y`cTR}6A+Kefu88%z=b=-3(vsdM^3Gw|F8Xw5rQbu}-v_8}fX0lh+$gyp(P0>4K zz-%PHhjYz&Q$WFu@$&{c(VZ} znSQ$wND0e?^Mb!^ZU%322)n!W$T7lt2`!ECLB2W%BI#DuVkb1=;qZGJBrwt&b7Oe5 zeEy~gPAcT#BLmJzjOv~Ymx20F0p&xvCQvl7ClE%qRuDZ7g*+uTocJP_s%LNT6yu!> zr{NCIx%XZnGuPn!vzclvbpy5HUFMEutllOJ_vD*lIpTO*7nr+(-G*B=;}UsZS{fD> zTa`ieUx649z2#1+v&xh7?1L@w7GN`;0g3iRG<@Yx6ym0I>g^+dNnO>B51^JzU?P(# za(a3b8hc;pM}OF@8!=iLOLaQf=75wwF)nfJhM0@}@f#Q$p-e}GL|D2 z-n|n7r2!~7-d=Fz5DN1b@`unbT_E!K%W+@05#Iu16j5HQ@8A{#`2+vU0f5!{(%csc z`63*~y!O2p{J>cWtz#i;uAs;)F2x<=f^G*1G7FWX$PIG^mZ|Uqnyr~`b1bZJU|hw{ z)X+>oAu4hUE>C_re0t0B;tbXo`hDw+VI@S3S*35}VrW>t^}@LCs2CunPX}%MrH(va zL>FABeE9Ts;RJ;9pSc%`1K%17H(;Z0F<6R=hDzAW5Kp2vF_t0eZMTJcS~$#ukSAOT zo;=g1$c^PW@OZ90B?~+*7Iqc>r2ro9x7l3DhlUV>dM-gH%W^G{#l65qTR@TR>gt0) zqo@x7)@M5t`yoH#h0MA+$H6N;YyL{$aFRC_MYf3m2X`Uok0)<>dfP;5(`qr~gpcch z3isxJW@s0`a_z{?Jh6TBt^N=SGM5g(`?JMO!LESb}@?KNq}JsdMCBna)8m zTj~G1ioz7(0!7(9hNWoiUb9%~I|97vGTi(C&sP)|*4piG(S8?w8&U9OZhYA2)* F{{gxc{Ez?u literal 0 HcmV?d00001 diff --git a/Scenes/Weapons/LB HEDRON.png.import b/Scenes/Weapons/LB HEDRON.png.import new file mode 100644 index 0000000..6b5ebb4 --- /dev/null +++ b/Scenes/Weapons/LB HEDRON.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://uatt2w2jsoan" +path.s3tc="res://.godot/imported/LB HEDRON.png-f20a599f24e3e8cd36a397be3e9d6d32.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Scenes/Weapons/LB HEDRON.png" +dest_files=["res://.godot/imported/LB HEDRON.png-f20a599f24e3e8cd36a397be3e9d6d32.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Scenes/Weapons/ShotgunBullet.tscn b/Scenes/Weapons/ShotgunBullet.tscn index da0437c..a527a60 100644 --- a/Scenes/Weapons/ShotgunBullet.tscn +++ b/Scenes/Weapons/ShotgunBullet.tscn @@ -21,7 +21,7 @@ _projectileSpeed = 15.0 [node name="RigidBody3D" type="RigidBody3D" parent="."] transform = Transform3D(0.99863, 0, -0.052336, 0, 1, 0, 0.052336, 0, 0.99863, -0.508974, 0, 0) collision_layer = 34 -collision_mask = 32 +collision_mask = 34 gravity_scale = 0.0 continuous_cd = true max_contacts_reported = 1000 @@ -38,7 +38,7 @@ texture = ExtResource("2_wjqcr") [node name="RigidBody3D2" type="RigidBody3D" parent="."] transform = Transform3D(0.99863, 0, 0.052336, 0, 1, 0, -0.052336, 0, 0.99863, 0.647, 0, 0) collision_layer = 34 -collision_mask = 32 +collision_mask = 34 gravity_scale = 0.0 continuous_cd = true max_contacts_reported = 1000 @@ -55,7 +55,7 @@ texture = ExtResource("2_wjqcr") [node name="RigidBody3D3" type="RigidBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.592052) collision_layer = 34 -collision_mask = 32 +collision_mask = 34 gravity_scale = 0.0 continuous_cd = true max_contacts_reported = 1000 diff --git a/Scenes/Weapons/Single.tscn b/Scenes/Weapons/Single.tscn new file mode 100644 index 0000000..4ff31f8 --- /dev/null +++ b/Scenes/Weapons/Single.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=4 format=3 uid="uid://cyn2wn6ffsnu7"] + +[ext_resource type="Script" path="res://Scripts/SingleShot.cs" id="1_18l5k"] +[ext_resource type="Texture2D" uid="uid://uatt2w2jsoan" path="res://Scenes/Weapons/LB HEDRON.png" id="1_nmsa0"] + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_njobr"] +radius = 0.3 + +[node name="Single" type="Node3D"] +script = ExtResource("1_18l5k") +Cooldown = 0.3 +_projectileSpeed = 10.0 + +[node name="RigidBody3D" type="RigidBody3D" parent="."] +collision_layer = 2 +collision_mask = 0 +gravity_scale = 0.0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.644825, 0) +shape = SubResource("CylinderShape3D_njobr") + +[node name="Sprite3D" type="Sprite3D" parent="RigidBody3D"] +transform = Transform3D(0.07, 0, 0, 0, 0.07, 0, 0, 0, 0.07, -0.244938, 1.29552, 0.266473) +centered = false +axis = 1 +texture = ExtResource("1_nmsa0") diff --git a/Scenes/Weapons/SingleShot.tscn b/Scenes/Weapons/SingleShot.tscn index 11b459f..706f172 100644 --- a/Scenes/Weapons/SingleShot.tscn +++ b/Scenes/Weapons/SingleShot.tscn @@ -1,22 +1,19 @@ -[gd_scene load_steps=6 format=3 uid="uid://si4byubqnng4"] +[gd_scene load_steps=4 format=3 uid="uid://bwkp1ff25acp1"] -[ext_resource type="Script" path="res://Scripts/TestBullet.cs" id="1_f6dfa"] +[ext_resource type="Script" path="res://Scripts/SingleShot.cs" id="1_a82kt"] [ext_resource type="Texture2D" uid="uid://borp7xvlfdcmq" path="res://Textures/Projectiles/bubble.png" id="2_1dg7p"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_phgri"] -albedo_color = Color(0.584314, 0.0352941, 0.141176, 1) - -[sub_resource type="SphereMesh" id="SphereMesh_wuk0e"] -material = SubResource("StandardMaterial3D_phgri") - [sub_resource type="CylinderShape3D" id="CylinderShape3D_3c0di"] [node name="SingleShot" type="Node3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.538645, 0) -script = ExtResource("1_f6dfa") +script = ExtResource("1_a82kt") +Cooldown = 0.3 [node name="RigidBody3D" type="RigidBody3D" parent="."] -collision_layer = 34 +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, -1) +top_level = true +disable_mode = 2 +collision_layer = 0 collision_mask = 34 gravity_scale = 0.0 continuous_cd = true @@ -24,17 +21,12 @@ max_contacts_reported = 1000 contact_monitor = true can_sleep = false -[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D"] -visible = false -mesh = SubResource("SphereMesh_wuk0e") -skeleton = NodePath("../..") - [node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0054872, -0.00215495, 0.0167444) shape = SubResource("CylinderShape3D_3c0di") [node name="Sprite3D" type="Sprite3D" parent="RigidBody3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00168204, -0.0587139, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.002, 1, 0) axis = 1 texture = ExtResource("2_1dg7p") @@ -42,5 +34,4 @@ texture = ExtResource("2_1dg7p") process_callback = 0 autostart = true -[connection signal="body_entered" from="RigidBody3D" to="." method="OnBulletHitObject"] [connection signal="timeout" from="TTL" to="." method="OnTimeToLiveTimeout"] diff --git a/Scripts/AreaExit.cs b/Scripts/AreaExit.cs index 5d0e68d..28b30be 100644 --- a/Scripts/AreaExit.cs +++ b/Scripts/AreaExit.cs @@ -5,11 +5,19 @@ public partial class AreaExit : Node3D [Export] private int _levelIndex; + private GameManager _gameManager; + + public override void _Ready() + { + _gameManager = GetTree().Root.GetNode("Main/GameManager"); + } + private void OnExitEntered(Node3D node) { - GD.Print("Exit reached"); - var main = GetTree().Root.GetNode
("/root/Main"); - main.LoadNextLevel(_levelIndex); + GD.Print("Exit reached"); + var main = GetTree().Root.GetNode
("/root/Main"); + main.LoadNextLevel(_levelIndex); + _gameManager.ResetPlayerPosition(); } } diff --git a/Scripts/FinalLevel.cs b/Scripts/FinalLevel.cs new file mode 100644 index 0000000..c4bb621 --- /dev/null +++ b/Scripts/FinalLevel.cs @@ -0,0 +1,10 @@ +using Godot; + +public partial class FinalLevel : Node3D +{ + public override void _Ready() + { + var finalBossGUI = GetTree().GetFirstNodeInGroup("BossGUI") as Control; + finalBossGUI.Show(); + } +} diff --git a/Scripts/GameManager.cs b/Scripts/GameManager.cs index e885c30..df937d5 100644 --- a/Scripts/GameManager.cs +++ b/Scripts/GameManager.cs @@ -38,14 +38,19 @@ public partial class GameManager : Node public void SetP1ToPreviousCharacter() => _p1CharacterIndex = _p1CharacterIndex == 0 ? _p1Characters.Count() : --_p1CharacterIndex; + public void ResetPlayerPosition() + { + var playerSpawnPoint = GetNode("P1SpawnPoint"); + playerSpawnPoint.SetPlayerPosition(_p1SelectedCharacter); + } + public void OnP1CharacterSelected() { GD.Print("Instancing..."); var selectedPlayer = _p1Characters[_p1CharacterIndex].Instantiate(); _p1SelectedCharacter = selectedPlayer as Character; GetTree().Root.AddChild(_p1SelectedCharacter); - var playerSpawnPoint = GetNode("P1SpawnPoint"); - playerSpawnPoint.SetPlayerPosition(_p1SelectedCharacter); + ResetPlayerPosition(); } public void RemoveP1Character() diff --git a/Scripts/MainMenu.cs b/Scripts/MainMenu.cs index 9133d04..39ee16c 100644 --- a/Scripts/MainMenu.cs +++ b/Scripts/MainMenu.cs @@ -30,7 +30,7 @@ public partial class MainMenu : Node2D if (animationName == "FirstLevel") { var main = GetTree().Root.GetNode
("/root/Main"); - main.LoadLevel(8); + main.LoadLevel(0); } } } diff --git a/Scripts/MeleeEnemy.cs b/Scripts/MeleeEnemy.cs index 0a17489..85459c0 100644 --- a/Scripts/MeleeEnemy.cs +++ b/Scripts/MeleeEnemy.cs @@ -14,12 +14,12 @@ public partial class MeleeEnemy : BasicEnemy var convertedPlayers = players.Select(x => (Node3D)x); var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault(); Position = Position.MoveToward(target.Position, _speed * (float)delta); - MoveAndSlide(); + //MoveAndSlide(); } } } -public partial class BasicEnemy : CharacterBody3D +public partial class BasicEnemy : Node3D { public void OnHit(Node3D node) { diff --git a/Scripts/Player1.cs b/Scripts/Player1.cs index 0c28743..fed7f53 100644 --- a/Scripts/Player1.cs +++ b/Scripts/Player1.cs @@ -23,7 +23,7 @@ public partial class Player1 : Character public override void _PhysicsProcess(double delta) { if (!_gameManager.IsP1SelectingCharacter) - { + { Velocity = CalculateCharacterMovement(delta); MoveAndSlide(); } @@ -66,7 +66,7 @@ public partial class Player1 : Character private async void Fire() { var projectile = _fireProjectile.Instantiate(); - projectile.Position = Position; + projectile.Position = Position + new Vector3(0f, 1f, 0f); GetParent().AddChild(projectile); CanShoot = false; await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout"); @@ -76,7 +76,7 @@ public partial class Player1 : Character private async void AltFire() { var projectile = _altFireProjectile.Instantiate(); - projectile.Position = Position; + projectile.Position = Position + new Vector3(0f, 1f, 0f); GetParent().AddChild(projectile); CanShoot = false; await ToSignal(GetTree().CreateTimer(projectile.Cooldown), "timeout"); diff --git a/Scripts/RangedEnemy.cs b/Scripts/RangedEnemy.cs new file mode 100644 index 0000000..0cdda3d --- /dev/null +++ b/Scripts/RangedEnemy.cs @@ -0,0 +1,3 @@ +public partial class RangedEnemy : BasicEnemy +{ +} diff --git a/Scripts/SingleShot.cs b/Scripts/SingleShot.cs new file mode 100644 index 0000000..9241b5a --- /dev/null +++ b/Scripts/SingleShot.cs @@ -0,0 +1,16 @@ +using Godot; +using System.Linq; + +public partial class SingleShot : Projectile +{ + public override void _PhysicsProcess(double delta) + { + var pellet = GetChildren().OfType().Single(); + pellet.Translate(new Vector3(0, 0, Speed * -(float)delta)); + } + + private void OnBulletHitObject(Node node) + { + QueueFree(); + } +} diff --git a/Scripts/TestBullet.cs b/Scripts/TestBullet.cs deleted file mode 100644 index 1db96f4..0000000 --- a/Scripts/TestBullet.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Godot; - -public partial class TestBullet : Projectile -{ - public override void _PhysicsProcess(double delta) - { - Translate(new Vector3(0, 0, Speed * -(float)delta)); - } - - private void OnBulletHitObject(Node node) - { - QueueFree(); - } -} diff --git a/project.godot b/project.godot index f6b60a5..bbe515f 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="GameJam2023" run/main_scene="res://Scenes/Main.tscn" -config/features=PackedStringArray("4.1", "C#", "Forward Plus") +config/features=PackedStringArray("4.0", "C#", "Forward Plus") run/physics_ticks_per_second=60 [autoload] @@ -61,13 +61,13 @@ p1_down={ } p1_fire={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":true,"script":null) ] } p1_altfire={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":true,"script":null) ] }