diff --git a/Resources/Debug/DebugLevels.tres b/Resources/Debug/DebugLevels.tres index 40098429..683e9df0 100644 --- a/Resources/Debug/DebugLevels.tres +++ b/Resources/Debug/DebugLevels.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" script_class="DebugMapSelectData" load_steps=24 format=3 uid="uid://d1lc8lhq1b05p"] +[gd_resource type="Resource" script_class="DebugMapSelectData" load_steps=27 format=3 uid="uid://d1lc8lhq1b05p"] [ext_resource type="Script" path="res://Scripts/Resources/DebugMenu/DebugMapSelectData.cs" id="1_6kwth"] [ext_resource type="Script" path="res://Scripts/Resources/MapStartDataResource.cs" id="1_ov731"] @@ -7,6 +7,7 @@ [ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="4_38yta"] [ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="5_em757"] [ext_resource type="Resource" uid="uid://clr1gln7nxa1o" path="res://Resources/Items/Power_Pickup.tres" id="6_sdmg8"] +[ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="7_b3oo5"] [sub_resource type="Resource" id="Resource_qnbi6"] script = ExtResource("2_tnajf") @@ -104,6 +105,18 @@ Enabled = true Path = "res://Scenes/Maps/SimpleScene.tscn" _name = "Default Scene" +[sub_resource type="Resource" id="Resource_ujm2a"] +script = ExtResource("1_ov731") +EggIndex = 0 +StartingEquipment = [ExtResource("7_b3oo5")] + +[sub_resource type="Resource" id="Resource_6ijnv"] +script = ExtResource("2_tnajf") +Enabled = true +Path = "res://Scenes/Maps/NewActorTest.tscn" +_name = "New Actor Test" +StartData = SubResource("Resource_ujm2a") + [resource] script = ExtResource("1_6kwth") -Maps = Array[Object]([SubResource("Resource_qnbi6"), SubResource("Resource_0k62o"), SubResource("Resource_edoov"), SubResource("Resource_47bot"), SubResource("Resource_mgdm6"), SubResource("Resource_v2as6"), SubResource("Resource_pein5"), SubResource("Resource_6wrc7"), SubResource("Resource_x3w7w"), SubResource("Resource_ajht5"), SubResource("Resource_7vmdn")]) +Maps = Array[Object]([SubResource("Resource_qnbi6"), SubResource("Resource_0k62o"), SubResource("Resource_edoov"), SubResource("Resource_47bot"), SubResource("Resource_mgdm6"), SubResource("Resource_v2as6"), SubResource("Resource_pein5"), SubResource("Resource_6wrc7"), SubResource("Resource_x3w7w"), SubResource("Resource_ajht5"), SubResource("Resource_7vmdn"), SubResource("Resource_6ijnv")]) diff --git a/Scenes/Actors/ActorEnemyTest.tscn b/Scenes/Actors/ActorEnemyTest.tscn index 0ba676a2..72441fb4 100644 --- a/Scenes/Actors/ActorEnemyTest.tscn +++ b/Scenes/Actors/ActorEnemyTest.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=37 format=3 uid="uid://bqjcwxene73l2"] +[gd_scene load_steps=39 format=3 uid="uid://bqjcwxene73l2"] [ext_resource type="Script" path="res://Scripts/Components/Actors/Actor.cs" id="1_k5cyk"] [ext_resource type="Texture2D" uid="uid://hukxr2e63gky" path="res://Sprites/Actors/Robot3.png" id="2_wt8wl"] @@ -9,6 +9,8 @@ [ext_resource type="Script" path="res://Scripts/Components/Actors/EnemyNavigationMovement.cs" id="7_fvl12"] [ext_resource type="Script" path="res://Scripts/Components/ProximityPlayerDetection.cs" id="8_62r5q"] [ext_resource type="Script" path="res://Scripts/Components/Actors/ActorResourceProvider.cs" id="9_2ocwk"] +[ext_resource type="PackedScene" uid="uid://cj63k0dmk7tl1" path="res://Scenes/Weapons/enemy_weapon_base.tscn" id="10_ehu1c"] +[ext_resource type="Resource" uid="uid://cdfmedtgp2rcn" path="res://Resources/Weapons/EnemyWeapon.tres" id="11_fvpvx"] [sub_resource type="AtlasTexture" id="AtlasTexture_spe0p"] atlas = ExtResource("2_wt8wl") @@ -255,15 +257,16 @@ _animatedSprite = NodePath("../AnimatedSprite2D") script = ExtResource("6_jlcsg") Ai = 0 -[node name="NavigationMovementProvider" type="Node2D" parent="." node_paths=PackedStringArray("_playerDetection")] +[node name="NavigationMovementProvider" type="Node2D" parent="." node_paths=PackedStringArray("EquippedWeapon", "_playerDetection")] script = ExtResource("7_fvl12") _navigationEnabled = true CollisionMask = 81 +EquippedWeapon = NodePath("../EnemyWeapon") _playerDetection = NodePath("../PlayerDetection") [node name="PlayerDetection" type="Area2D" parent="."] visible = false -collision_layer = 16 +collision_layer = 0 collision_mask = 2 script = ExtResource("8_62r5q") @@ -282,6 +285,9 @@ debug_path_custom_color = Color(1, 0, 0, 1) script = ExtResource("9_2ocwk") ResourceName = "Health" +[node name="EnemyWeapon" parent="." instance=ExtResource("10_ehu1c")] +WeaponData = ExtResource("11_fvpvx") + [connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"] [connection signal="area_exited" from="PlayerDetection" to="PlayerDetection" method="_on_area_exited"] [connection signal="velocity_computed" from="NavigationAgent2D" to="NavigationMovementProvider" method="_on_navigation_agent_2d_velocity_computed"] diff --git a/Scenes/Maps/NewActorTest.tscn b/Scenes/Maps/NewActorTest.tscn new file mode 100644 index 00000000..7048e74d --- /dev/null +++ b/Scenes/Maps/NewActorTest.tscn @@ -0,0 +1,78 @@ +[gd_scene load_steps=14 format=4 uid="uid://5klhna6pdpss"] + +[ext_resource type="Script" path="res://Scripts/GameManager.cs" id="1_uhxhn"] +[ext_resource type="PackedScene" uid="uid://bghghp5ep4w2j" path="res://Scenes/player.tscn" id="2_afebu"] +[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="3_2mapn"] +[ext_resource type="Script" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_7nc7l"] +[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_bsah1"] +[ext_resource type="Script" path="res://Scripts/TilemapAvoidance.cs" id="6_f3h3l"] +[ext_resource type="Script" path="res://Scenes/CameraController.gd" id="7_4a7df"] +[ext_resource type="Script" path="res://Scripts/InventoryManager.cs" id="8_scbgd"] +[ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="9_xs7rn"] +[ext_resource type="Script" path="res://Scenes/CameraTarget.gd" id="10_86lpq"] +[ext_resource type="Script" path="res://Scripts/AlarmManager.cs" id="11_njjjf"] +[ext_resource type="PackedScene" uid="uid://bqjcwxene73l2" path="res://Scenes/Actors/ActorEnemyTest.tscn" id="12_8mkvw"] + +[sub_resource type="Resource" id="Resource_6wo78"] +script = ExtResource("4_7nc7l") +EggIndex = 0 +StartingEquipment = [] + +[node name="GameScene" type="Node2D"] +script = ExtResource("1_uhxhn") +PlayerTemplate = ExtResource("2_afebu") +SpawnMarkers = { +0: NodePath("PlayerStartPosition") +} +WeaponTemplate = ExtResource("3_2mapn") +MapStartData = SubResource("Resource_6wo78") + +[node name="Tilemaps" type="Node2D" parent="."] + +[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayer")] +tile_map_data = PackedByteArray("AAAEABAAAAAEAAAAAAAEABEAAAAEAAAAAAAEABIAAAAEAAAAAAAEABMAAAAEAAAAAAAEABQAAAAEAAAAAAAEABUAAAAEAAAAAAAEABYAAAAEAAAAAAAFABAAAAAEAAAAAAAFABEAAAAEAAAAAAAFABIAAAAEAAAAAAAFABMAAAAEAAAAAAAFABQAAAAEAAAAAAAFABUAAAAEAAAAAAAFABYAAAAEAAAAAAAGABAAAAAEAAAAAAAGABEAAAAEAAAAAAAGABIAAAAEAAAAAAAGABMAAAAEAAAAAAAGABQAAAAEAAAAAAAGABUAAAAEAAAAAAAGABYAAAAEAAAAAAAHABAAAAAEAAAAAAAHABEAAAAEAAAAAAAHABIAAAAEAAAAAAAHABMAAAAEAAAAAAAHABQAAAAEAAAAAAAHABUAAAAEAAAAAAAHABYAAAAEAAAAAAAIABAAAAAEAAAAAAAIABEAAAAEAAAAAAAIABIAAAAEAAAAAAAIABMAAAAEAAAAAAAIABQAAAAEAAAAAAAIABUAAAAEAAAAAAAIABYAAAAEAAAAAAAJABAAAAAEAAAAAAAJABEAAAAEAAAAAAAJABIAAAAEAAAAAAAJABMAAAAEAAAAAAAJABQAAAAEAAAAAAAJABUAAAAEAAAAAAAJABYAAAAEAAAAAAAKABAAAAAEAAAAAAAKABEAAAAEAAAAAAAKABIAAAAEAAAAAAAKABMAAAAEAAAAAAAKABQAAAAEAAAAAAAKABUAAAAEAAAAAAAKABYAAAAEAAAAAAADABAAAAAEAAAAAAADABEAAAAEAAAAAAADABIAAAAEAAAAAAADABMAAAAEAAAAAAADABQAAAAEAAAAAAADABUAAAAEAAAAAAADABYAAAAEAAAAAAADABcAAAAEAAAAAAADABgAAAAEAAAAAAAEABcAAAAEAAAAAAAEABgAAAAEAAAAAAAFABcAAAAEAAAAAAAFABgAAAAEAAAAAAAGABcAAAAEAAAAAAAGABgAAAAEAAAAAAAHABcAAAAEAAAAAAAHABgAAAAEAAAAAAAIABcAAAAEAAAAAAAIABgAAAAEAAAAAAAJABcAAAAEAAAAAAAJABgAAAAEAAAAAAAKABcAAAAEAAAAAAAKABgAAAAEAAAAAAALABAAAAAEAAAAAAALABEAAAAEAAAAAAALABIAAAAEAAAAAAALABMAAAAEAAAAAAALABQAAAAEAAAAAAALABUAAAAEAAAAAAALABYAAAAEAAAAAAALABcAAAAEAAAAAAALABgAAAAEAAAAAAD9/woAAAAEAAAAAAD9/wsAAAAEAAAAAAD9/wwAAAAEAAAAAAD9/w0AAAAEAAAAAAD9/w4AAAAEAAAAAAD9/w8AAAAEAAAAAAD9/xAAAAAEAAAAAAD9/xEAAAAEAAAAAAD9/xIAAAAEAAAAAAD9/xMAAAAEAAAAAAD9/xQAAAAEAAAAAAD9/xUAAAAEAAAAAAD9/xYAAAAEAAAAAAD9/xcAAAAEAAAAAAD9/xgAAAAEAAAAAAD9/xkAAAAEAAAAAAD9/xoAAAAEAAAAAAD9/xsAAAAEAAAAAAD9/xwAAAAEAAAAAAD9/x0AAAAEAAAAAAD9/x4AAAAEAAAAAAD9/x8AAAAEAAAAAAD9/yAAAAAEAAAAAAD9/yEAAAAEAAAAAAD9/yIAAAAEAAAAAAD9/yMAAAAEAAAAAAD+/woAAAAEAAAAAAD+/wsAAAAEAAAAAAD+/wwAAAAEAAAAAAD+/w0AAAAEAAAAAAD+/w4AAAAEAAAAAAD+/w8AAAAEAAAAAAD+/xAAAAAEAAAAAAD+/xEAAAAEAAAAAAD+/xIAAAAEAAAAAAD+/xMAAAAEAAAAAAD+/xQAAAAEAAAAAAD+/xUAAAAEAAAAAAD+/xYAAAAEAAAAAAD+/xcAAAAEAAAAAAD+/xgAAAAEAAAAAAD+/xkAAAAEAAAAAAD+/xoAAAAEAAAAAAD+/xsAAAAEAAAAAAD+/xwAAAAEAAAAAAD+/x0AAAAEAAAAAAD+/x4AAAAEAAAAAAD+/x8AAAAEAAAAAAD+/yAAAAAEAAAAAAD+/yEAAAAEAAAAAAD+/yIAAAAEAAAAAAD+/yMAAAAEAAAAAAD//woAAAAEAAAAAAD//wsAAAAEAAAAAAD//wwAAAAEAAAAAAD//w0AAAAEAAAAAAD//w4AAAAEAAAAAAD//w8AAAAEAAAAAAD//xAAAAAEAAAAAAD//xEAAAAEAAAAAAD//xIAAAAEAAAAAAD//xMAAAAEAAAAAAD//xQAAAAEAAAAAAD//xUAAAAEAAAAAAD//xYAAAAEAAAAAAD//xcAAAAEAAAAAAD//xgAAAAEAAAAAAD//xkAAAAEAAAAAAD//xoAAAAEAAAAAAD//xsAAAAEAAAAAAD//xwAAAAEAAAAAAD//x0AAAAEAAAAAAD//x4AAAAEAAAAAAD//x8AAAAEAAAAAAD//yAAAAAEAAAAAAD//yEAAAAEAAAAAAD//yIAAAAEAAAAAAD//yMAAAAEAAAAAAAAAAoAAAAEAAAAAAAAAAsAAAAEAAAAAAAAAAwAAAAEAAAAAAAAAA0AAAAEAAAAAAAAAA4AAAAEAAAAAAAAAA8AAAAEAAAAAAAAABAAAAAEAAAAAAAAABEAAAAEAAAAAAAAABIAAAAEAAAAAAAAABMAAAAEAAAAAAAAABQAAAAEAAAAAAAAABUAAAAEAAAAAAAAABYAAAAEAAAAAAAAABcAAAAEAAAAAAAAABgAAAAEAAAAAAAAABkAAAAEAAAAAAAAABoAAAAEAAAAAAAAABsAAAAEAAAAAAAAABwAAAAEAAAAAAAAAB0AAAAEAAAAAAAAAB4AAAAEAAAAAAAAAB8AAAAEAAAAAAAAACAAAAAEAAAAAAAAACEAAAAEAAAAAAAAACIAAAAEAAAAAAAAACMAAAAEAAAAAAABAAoAAAAEAAAAAAABAAsAAAAEAAAAAAABAAwAAAAEAAAAAAABAA0AAAAEAAAAAAABAA4AAAAEAAAAAAABAA8AAAAEAAAAAAABABAAAAAEAAAAAAABABEAAAAEAAAAAAABABIAAAAEAAAAAAABABMAAAAEAAAAAAABABQAAAAEAAAAAAABABUAAAAEAAAAAAABABYAAAAEAAAAAAABABcAAAAEAAAAAAABABgAAAAEAAAAAAABABkAAAAEAAAAAAABABoAAAAEAAAAAAABABsAAAAEAAAAAAABABwAAAAEAAAAAAABAB0AAAAEAAAAAAABAB4AAAAEAAAAAAABAB8AAAAEAAAAAAABACAAAAAEAAAAAAABACEAAAAEAAAAAAABACIAAAAEAAAAAAABACMAAAAEAAAAAAACAAoAAAAEAAAAAAACAAsAAAAEAAAAAAACAAwAAAAEAAAAAAACAA0AAAAEAAAAAAACAA4AAAAEAAAAAAACAA8AAAAEAAAAAAACABAAAAAEAAAAAAACABEAAAAEAAAAAAACABIAAAAEAAAAAAACABMAAAAEAAAAAAACABQAAAAEAAAAAAACABUAAAAEAAAAAAACABYAAAAEAAAAAAACABcAAAAEAAAAAAACABgAAAAEAAAAAAACABkAAAAEAAAAAAACABoAAAAEAAAAAAACABsAAAAEAAAAAAACABwAAAAEAAAAAAACAB0AAAAEAAAAAAACAB4AAAAEAAAAAAACAB8AAAAEAAAAAAACACAAAAAEAAAAAAACACEAAAAEAAAAAAACACIAAAAEAAAAAAACACMAAAAEAAAAAAADAAoAAAAEAAAAAAADAAsAAAAEAAAAAAADAAwAAAAEAAAAAAADAA0AAAAEAAAAAAADAA4AAAAEAAAAAAADAA8AAAAEAAAAAAADABkAAAAEAAAAAAADABoAAAAEAAAAAAADABsAAAAEAAAAAAADABwAAAAEAAAAAAADAB0AAAAEAAAAAAADAB4AAAAEAAAAAAADAB8AAAAEAAAAAAADACAAAAAEAAAAAAADACEAAAAEAAAAAAADACIAAAAEAAAAAAADACMAAAAEAAAAAAAEAAoAAAAEAAAAAAAEAAsAAAAEAAAAAAAEAAwAAAAEAAAAAAAEAA0AAAAEAAAAAAAEAA4AAAAEAAAAAAAEAA8AAAAEAAAAAAAEABkAAAAEAAAAAAAEABoAAAAEAAAAAAAEABsAAAAEAAAAAAAEABwAAAAEAAAAAAAEAB0AAAAEAAAAAAAEAB4AAAAEAAAAAAAEAB8AAAAEAAAAAAAEACAAAAAEAAAAAAAEACEAAAAEAAAAAAAEACIAAAAEAAAAAAAEACMAAAAEAAAAAAAFAAoAAAAEAAAAAAAFAAsAAAAEAAAAAAAFAAwAAAAEAAAAAAAFAA0AAAAEAAAAAAAFAA4AAAAEAAAAAAAFAA8AAAAEAAAAAAAFABkAAAAEAAAAAAAFABoAAAAEAAAAAAAFABsAAAAEAAAAAAAFABwAAAAEAAAAAAAFAB0AAAAEAAAAAAAFAB4AAAAEAAAAAAAFAB8AAAAEAAAAAAAFACAAAAAEAAAAAAAFACEAAAAEAAAAAAAFACIAAAAEAAAAAAAFACMAAAAEAAAAAAAGAAoAAAAEAAAAAAAGAAsAAAAEAAAAAAAGAAwAAAAEAAAAAAAGAA0AAAAEAAAAAAAGAA4AAAAEAAAAAAAGAA8AAAAEAAAAAAAGABkAAAAEAAAAAAAGABoAAAAEAAAAAAAGABsAAAAEAAAAAAAGABwAAAAEAAAAAAAGAB0AAAAEAAAAAAAGAB4AAAAEAAAAAAAGAB8AAAAEAAAAAAAGACAAAAAEAAAAAAAGACEAAAAEAAAAAAAGACIAAAAEAAAAAAAGACMAAAAEAAAAAAAHAAoAAAAEAAAAAAAHAAsAAAAEAAAAAAAHAAwAAAAEAAAAAAAHAA0AAAAEAAAAAAAHAA4AAAAEAAAAAAAHAA8AAAAEAAAAAAAHABkAAAAEAAAAAAAHABoAAAAEAAAAAAAHABsAAAAEAAAAAAAHABwAAAAEAAAAAAAHAB0AAAAEAAAAAAAHAB4AAAAEAAAAAAAHAB8AAAAEAAAAAAAHACAAAAAEAAAAAAAHACEAAAAEAAAAAAAHACIAAAAEAAAAAAAHACMAAAAEAAAAAAAIAAoAAAAEAAAAAAAIAAsAAAAEAAAAAAAIAAwAAAAEAAAAAAAIAA0AAAAEAAAAAAAIAA4AAAAEAAAAAAAIAA8AAAAEAAAAAAAIABkAAAAEAAAAAAAIABoAAAAEAAAAAAAIABsAAAAEAAAAAAAIABwAAAAEAAAAAAAIAB0AAAAEAAAAAAAIAB4AAAAEAAAAAAAIAB8AAAAEAAAAAAAIACAAAAAEAAAAAAAIACEAAAAEAAAAAAAIACIAAAAEAAAAAAAIACMAAAAEAAAAAAAJAAoAAAAEAAAAAAAJAAsAAAAEAAAAAAAJAAwAAAAEAAAAAAAJAA0AAAAEAAAAAAAJAA4AAAAEAAAAAAAJAA8AAAAEAAAAAAAJABkAAAAEAAAAAAAJABoAAAAEAAAAAAAJABsAAAAEAAAAAAAJABwAAAAEAAAAAAAJAB0AAAAEAAAAAAAJAB4AAAAEAAAAAAAJAB8AAAAEAAAAAAAJACAAAAAEAAAAAAAJACEAAAAEAAAAAAAJACIAAAAEAAAAAAAJACMAAAAEAAAAAAAKAAoAAAAEAAAAAAAKAAsAAAAEAAAAAAAKAAwAAAAEAAAAAAAKAA0AAAAEAAAAAAAKAA4AAAAEAAAAAAAKAA8AAAAEAAAAAAAKABkAAAAEAAAAAAAKABoAAAAEAAAAAAAKABsAAAAEAAAAAAAKABwAAAAEAAAAAAAKAB0AAAAEAAAAAAAKAB4AAAAEAAAAAAAKAB8AAAAEAAAAAAAKACAAAAAEAAAAAAAKACEAAAAEAAAAAAAKACIAAAAEAAAAAAAKACMAAAAEAAAAAAALAAoAAAAEAAAAAAALAAsAAAAEAAAAAAALAAwAAAAEAAAAAAALAA0AAAAEAAAAAAALAA4AAAAEAAAAAAALAA8AAAAEAAAAAAALABkAAAAEAAAAAAALABoAAAAEAAAAAAALABsAAAAEAAAAAAALABwAAAAEAAAAAAALAB0AAAAEAAAAAAALAB4AAAAEAAAAAAALAB8AAAAEAAAAAAALACAAAAAEAAAAAAALACEAAAAEAAAAAAALACIAAAAEAAAAAAALACMAAAAEAAAAAAAMAAoAAAAEAAAAAAAMAAsAAAAEAAAAAAAMAAwAAAAEAAAAAAAMAA0AAAAEAAAAAAAMAA4AAAAEAAAAAAAMAA8AAAAEAAAAAAAMABAAAAAEAAAAAAAMABEAAAAEAAAAAAAMABIAAAAEAAAAAAAMABMAAAAEAAAAAAAMABQAAAAEAAAAAAAMABUAAAAEAAAAAAAMABYAAAAEAAAAAAAMABcAAAAEAAAAAAAMABgAAAAEAAAAAAAMABkAAAAEAAAAAAAMABoAAAAEAAAAAAAMABsAAAAEAAAAAAAMABwAAAAEAAAAAAAMAB0AAAAEAAAAAAAMAB4AAAAEAAAAAAAMAB8AAAAEAAAAAAAMACAAAAAEAAAAAAAMACEAAAAEAAAAAAAMACIAAAAEAAAAAAAMACMAAAAEAAAAAAANAAoAAAAEAAAAAAANAAsAAAAEAAAAAAANAAwAAAAEAAAAAAANAA0AAAAEAAAAAAANAA4AAAAEAAAAAAANAA8AAAAEAAAAAAANABAAAAAEAAAAAAANABEAAAAEAAAAAAANABIAAAAEAAAAAAANABMAAAAEAAAAAAANABQAAAAEAAAAAAANABUAAAAEAAAAAAANABYAAAAEAAAAAAANABcAAAAEAAAAAAANABgAAAAEAAAAAAANABkAAAAEAAAAAAANABoAAAAEAAAAAAANABsAAAAEAAAAAAANABwAAAAEAAAAAAANAB0AAAAEAAAAAAANAB4AAAAEAAAAAAANAB8AAAAEAAAAAAANACAAAAAEAAAAAAANACEAAAAEAAAAAAANACIAAAAEAAAAAAANACMAAAAEAAAAAAAOAAoAAAAEAAAAAAAOAAsAAAAEAAAAAAAOAAwAAAAEAAAAAAAOAA0AAAAEAAAAAAAOAA4AAAAEAAAAAAAOAA8AAAAEAAAAAAAOABAAAAAEAAAAAAAOABEAAAAEAAAAAAAOABIAAAAEAAAAAAAOABMAAAAEAAAAAAAOABQAAAAEAAAAAAAOABUAAAAEAAAAAAAOABYAAAAEAAAAAAAOABcAAAAEAAAAAAAOABgAAAAEAAAAAAAOABkAAAAEAAAAAAAOABoAAAAEAAAAAAAOABsAAAAEAAAAAAAOABwAAAAEAAAAAAAOAB0AAAAEAAAAAAAOAB4AAAAEAAAAAAAOAB8AAAAEAAAAAAAOACAAAAAEAAAAAAAOACEAAAAEAAAAAAAOACIAAAAEAAAAAAAOACMAAAAEAAAAAAAPAAoAAAAEAAAAAAAPAAsAAAAEAAAAAAAPAAwAAAAEAAAAAAAPAA0AAAAEAAAAAAAPAA4AAAAEAAAAAAAPAA8AAAAEAAAAAAAPABAAAAAEAAAAAAAPABEAAAAEAAAAAAAPABIAAAAEAAAAAAAPABMAAAAEAAAAAAAPABQAAAAEAAAAAAAPABUAAAAEAAAAAAAPABYAAAAEAAAAAAAPABcAAAAEAAAAAAAPABgAAAAEAAAAAAAPABkAAAAEAAAAAAAPABoAAAAEAAAAAAAPABsAAAAEAAAAAAAPABwAAAAEAAAAAAAPAB0AAAAEAAAAAAAPAB4AAAAEAAAAAAAPAB8AAAAEAAAAAAAPACAAAAAEAAAAAAAPACEAAAAEAAAAAAAPACIAAAAEAAAAAAAPACMAAAAEAAAAAAAQAAoAAAAEAAAAAAAQAAsAAAAEAAAAAAAQAAwAAAAEAAAAAAAQAA0AAAAEAAAAAAAQAA4AAAAEAAAAAAAQAA8AAAAEAAAAAAAQABAAAAAEAAAAAAAQABEAAAAEAAAAAAAQABIAAAAEAAAAAAAQABMAAAAEAAAAAAAQABQAAAAEAAAAAAAQABUAAAAEAAAAAAAQABYAAAAEAAAAAAAQABcAAAAEAAAAAAAQABgAAAAEAAAAAAAQABkAAAAEAAAAAAAQABoAAAAEAAAAAAAQABsAAAAEAAAAAAAQABwAAAAEAAAAAAAQAB0AAAAEAAAAAAAQAB4AAAAEAAAAAAAQAB8AAAAEAAAAAAAQACAAAAAEAAAAAAAQACEAAAAEAAAAAAAQACIAAAAEAAAAAAAQACMAAAAEAAAAAAARAAoAAAAEAAAAAAARAAsAAAAEAAAAAAARAAwAAAAEAAAAAAARAA0AAAAEAAAAAAARAA4AAAAEAAAAAAARAA8AAAAEAAAAAAARABAAAAAEAAAAAAARABEAAAAEAAAAAAARABIAAAAEAAAAAAARABMAAAAEAAAAAAARABQAAAAEAAAAAAARABUAAAAEAAAAAAARABYAAAAEAAAAAAARABcAAAAEAAAAAAARABgAAAAEAAAAAAARABkAAAAEAAAAAAARABoAAAAEAAAAAAARABsAAAAEAAAAAAARABwAAAAEAAAAAAARAB0AAAAEAAAAAAARAB4AAAAEAAAAAAARAB8AAAAEAAAAAAARACAAAAAEAAAAAAARACEAAAAEAAAAAAARACIAAAAEAAAAAAARACMAAAAEAAAAAAASAAoAAAAEAAAAAAASAAsAAAAEAAAAAAASAAwAAAAEAAAAAAASAA0AAAAEAAAAAAASAA4AAAAEAAAAAAASAA8AAAAEAAAAAAASABAAAAAEAAAAAAASABEAAAAEAAAAAAASABIAAAAEAAAAAAASABMAAAAEAAAAAAASABQAAAAEAAAAAAASABUAAAAEAAAAAAASABYAAAAEAAAAAAASABcAAAAEAAAAAAASABgAAAAEAAAAAAASABkAAAAEAAAAAAASABoAAAAEAAAAAAASABsAAAAEAAAAAAASABwAAAAEAAAAAAASAB0AAAAEAAAAAAASAB4AAAAEAAAAAAASAB8AAAAEAAAAAAASACAAAAAEAAAAAAASACEAAAAEAAAAAAASACIAAAAEAAAAAAASACMAAAAEAAAAAAATAAoAAAAEAAAAAAATAAsAAAAEAAAAAAATAAwAAAAEAAAAAAATAA0AAAAEAAAAAAATAA4AAAAEAAAAAAATAA8AAAAEAAAAAAATABAAAAAEAAAAAAATABEAAAAEAAAAAAATABIAAAAEAAAAAAATABMAAAAEAAAAAAATABQAAAAEAAAAAAATABUAAAAEAAAAAAATABYAAAAEAAAAAAATABcAAAAEAAAAAAATABgAAAAEAAAAAAATABkAAAAEAAAAAAATABoAAAAEAAAAAAATABsAAAAEAAAAAAATABwAAAAEAAAAAAATAB0AAAAEAAAAAAATAB4AAAAEAAAAAAATAB8AAAAEAAAAAAATACAAAAAEAAAAAAATACEAAAAEAAAAAAATACIAAAAEAAAAAAATACMAAAAEAAAAAAAUAAoAAAAEAAAAAAAUAAsAAAAEAAAAAAAUAAwAAAAEAAAAAAAUAA0AAAAEAAAAAAAUAA4AAAAEAAAAAAAUAA8AAAAEAAAAAAAUABAAAAAEAAAAAAAUABEAAAAEAAAAAAAUABIAAAAEAAAAAAAUABMAAAAEAAAAAAAUABQAAAAEAAAAAAAUABUAAAAEAAAAAAAUABYAAAAEAAAAAAAUABcAAAAEAAAAAAAUABgAAAAEAAAAAAAUABkAAAAEAAAAAAAUABoAAAAEAAAAAAAUABsAAAAEAAAAAAAUABwAAAAEAAAAAAAUAB0AAAAEAAAAAAAUAB4AAAAEAAAAAAAUAB8AAAAEAAAAAAAUACAAAAAEAAAAAAAUACEAAAAEAAAAAAAUACIAAAAEAAAAAAAUACMAAAAEAAAAAAAVAAoAAAAEAAAAAAAVAAsAAAAEAAAAAAAVAAwAAAAEAAAAAAAVAA0AAAAEAAAAAAAVAA4AAAAEAAAAAAAVAA8AAAAEAAAAAAAVABAAAAAEAAAAAAAVABEAAAAEAAAAAAAVABIAAAAEAAAAAAAVABMAAAAEAAAAAAAVABQAAAAEAAAAAAAVABUAAAAEAAAAAAAVABYAAAAEAAAAAAAVABcAAAAEAAAAAAAVABgAAAAEAAAAAAAVABkAAAAEAAAAAAAVABoAAAAEAAAAAAAVABsAAAAEAAAAAAAVABwAAAAEAAAAAAAVAB0AAAAEAAAAAAAVAB4AAAAEAAAAAAAVAB8AAAAEAAAAAAAVACAAAAAEAAAAAAAVACEAAAAEAAAAAAAVACIAAAAEAAAAAAAVACMAAAAEAAAAAAAWAAoAAAAEAAAAAAAWAAsAAAAEAAAAAAAWAAwAAAAEAAAAAAAWAA0AAAAEAAAAAAAWAA4AAAAEAAAAAAAWAA8AAAAEAAAAAAAWABAAAAAEAAAAAAAWABEAAAAEAAAAAAAWABIAAAAEAAAAAAAWABMAAAAEAAAAAAAWABQAAAAEAAAAAAAWABUAAAAEAAAAAAAWABYAAAAEAAAAAAAWABcAAAAEAAAAAAAWABgAAAAEAAAAAAAWABkAAAAEAAAAAAAWABoAAAAEAAAAAAAWABsAAAAEAAAAAAAWABwAAAAEAAAAAAAWAB0AAAAEAAAAAAAWAB4AAAAEAAAAAAAWAB8AAAAEAAAAAAAWACAAAAAEAAAAAAAWACEAAAAEAAAAAAAWACIAAAAEAAAAAAAWACMAAAAEAAAAAAAXAAoAAAAEAAAAAAAXAAsAAAAEAAAAAAAXAAwAAAAEAAAAAAAXAA0AAAAEAAAAAAAXAA4AAAAEAAAAAAAXAA8AAAAEAAAAAAAXABAAAAAEAAAAAAAXABEAAAAEAAAAAAAXABIAAAAEAAAAAAAXABMAAAAEAAAAAAAXABQAAAAEAAAAAAAXABUAAAAEAAAAAAAXABYAAAAEAAAAAAAXABcAAAAEAAAAAAAXABgAAAAEAAAAAAAXABkAAAAEAAAAAAAXABoAAAAEAAAAAAAXABsAAAAEAAAAAAAXABwAAAAEAAAAAAAXAB0AAAAEAAAAAAAXAB4AAAAEAAAAAAAXAB8AAAAEAAAAAAAXACAAAAAEAAAAAAAXACEAAAAEAAAAAAAXACIAAAAEAAAAAAAXACMAAAAEAAAAAAAYAAoAAAAEAAAAAAAYAAsAAAAEAAAAAAAYAAwAAAAEAAAAAAAYAA0AAAAEAAAAAAAYAA4AAAAEAAAAAAAYAA8AAAAEAAAAAAAYABAAAAAEAAAAAAAYABEAAAAEAAAAAAAYABIAAAAEAAAAAAAYABMAAAAEAAAAAAAYABQAAAAEAAAAAAAYABUAAAAEAAAAAAAYABYAAAAEAAAAAAAYABcAAAAEAAAAAAAYABgAAAAEAAAAAAAYABkAAAAEAAAAAAAYABoAAAAEAAAAAAAYABsAAAAEAAAAAAAYABwAAAAEAAAAAAAYAB0AAAAEAAAAAAAYAB4AAAAEAAAAAAAYAB8AAAAEAAAAAAAYACAAAAAEAAAAAAAYACEAAAAEAAAAAAAYACIAAAAEAAAAAAAYACMAAAAEAAAAAAAZAAoAAAAEAAAAAAAZAAsAAAAEAAAAAAAZAAwAAAAEAAAAAAAZAA0AAAAEAAAAAAAZAA4AAAAEAAAAAAAZAA8AAAAEAAAAAAAZABAAAAAEAAAAAAAZABEAAAAEAAAAAAAZABIAAAAEAAAAAAAZABMAAAAEAAAAAAAZABQAAAAEAAAAAAAZABUAAAAEAAAAAAAZABYAAAAEAAAAAAAZABcAAAAEAAAAAAAZABgAAAAEAAAAAAAZABkAAAAEAAAAAAAZABoAAAAEAAAAAAAZABsAAAAEAAAAAAAZABwAAAAEAAAAAAAZAB0AAAAEAAAAAAAZAB4AAAAEAAAAAAAZAB8AAAAEAAAAAAAZACAAAAAEAAAAAAAZACEAAAAEAAAAAAAZACIAAAAEAAAAAAAZACMAAAAEAAAAAAAaAAoAAAAEAAAAAAAaAAsAAAAEAAAAAAAaAAwAAAAEAAAAAAAaAA0AAAAEAAAAAAAaAA4AAAAEAAAAAAAaAA8AAAAEAAAAAAAaABAAAAAEAAAAAAAaABEAAAAEAAAAAAAaABIAAAAEAAAAAAAaABMAAAAEAAAAAAAaABQAAAAEAAAAAAAaABUAAAAEAAAAAAAaABYAAAAEAAAAAAAaABcAAAAEAAAAAAAaABgAAAAEAAAAAAAaABkAAAAEAAAAAAAaABoAAAAEAAAAAAAaABsAAAAEAAAAAAAaABwAAAAEAAAAAAAaAB0AAAAEAAAAAAAaAB4AAAAEAAAAAAAaAB8AAAAEAAAAAAAaACAAAAAEAAAAAAAaACEAAAAEAAAAAAAaACIAAAAEAAAAAAAaACMAAAAEAAAAAAAbAAoAAAAEAAAAAAAbAAsAAAAEAAAAAAAbAAwAAAAEAAAAAAAbAA0AAAAEAAAAAAAbAA4AAAAEAAAAAAAbAA8AAAAEAAAAAAAbABAAAAAEAAAAAAAbABEAAAAEAAAAAAAbABIAAAAEAAAAAAAbABMAAAAEAAAAAAAbABQAAAAEAAAAAAAbABUAAAAEAAAAAAAbABYAAAAEAAAAAAAbABcAAAAEAAAAAAAbABgAAAAEAAAAAAAbABkAAAAEAAAAAAAbABoAAAAEAAAAAAAbABsAAAAEAAAAAAAbABwAAAAEAAAAAAAbAB0AAAAEAAAAAAAbAB4AAAAEAAAAAAAbAB8AAAAEAAAAAAAbACAAAAAEAAAAAAAbACEAAAAEAAAAAAAbACIAAAAEAAAAAAAbACMAAAAEAAAAAAAcAAoAAAAEAAAAAAAcAAsAAAAEAAAAAAAcAAwAAAAEAAAAAAAcAA0AAAAEAAAAAAAcAA4AAAAEAAAAAAAcAA8AAAAEAAAAAAAcABAAAAAEAAAAAAAcABEAAAAEAAAAAAAcABIAAAAEAAAAAAAcABMAAAAEAAAAAAAcABQAAAAEAAAAAAAcABUAAAAEAAAAAAAcABYAAAAEAAAAAAAcABcAAAAEAAAAAAAcABgAAAAEAAAAAAAcABkAAAAEAAAAAAAcABoAAAAEAAAAAAAcABsAAAAEAAAAAAAcABwAAAAEAAAAAAAcAB0AAAAEAAAAAAAcAB4AAAAEAAAAAAAcAB8AAAAEAAAAAAAcACAAAAAEAAAAAAAcACEAAAAEAAAAAAAcACIAAAAEAAAAAAAcACMAAAAEAAAAAAA=") +tile_set = ExtResource("5_bsah1") +script = ExtResource("6_f3h3l") +_solidLayer = NodePath("../Solid") +metadata/_edit_lock_ = true + +[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_map_data = PackedByteArray("AAACAA0AAAAAAAsAAAADAA0AAAABAAQAAAAEAA0AAAABAAQAAAAFAA0AAAABAAQAAAAGAA0AAAABAAQAAAAHAA0AAAABAAQAAAAIAA0AAAABAAQAAAAJAA0AAAABAAQAAAAKAA0AAAABAAQAAAALAA0AAAABAAQAAAAMAA0AAAABAAQAAAAMAA4AAAAKAAgAAAAMAA8AAAAKAAkAAAACABgAAAAEAAQAAAACABYAAAAAAAQAAAACABcAAAAAAAQAAAACABUAAAAAAAQAAAACABQAAAAFAAQAAAACABEAAAAEAAQAAAACABAAAAAAAAQAAAACAA8AAAAAAAQAAAACAA4AAAAAAAQAAAADAA4AAAAKAAgAAAADAA8AAAAKAAkAAAAEAA4AAAAKAAgAAAAEAA8AAAAKAAkAAAAFAA4AAAAKAAgAAAAFAA8AAAAKAAkAAAAGAA4AAAAKAAgAAAAGAA8AAAAKAAkAAAAHAA4AAAAKAAgAAAAHAA8AAAAKAAkAAAAIAA4AAAAKAAgAAAAIAA8AAAAKAAkAAAAJAA4AAAAKAAgAAAAJAA8AAAAKAAkAAAAKAA4AAAAKAAgAAAAKAA8AAAAKAAkAAAALAA4AAAAKAAgAAAALAA8AAAAKAAkAAAANAA4AAAAKAAgAAAANAA8AAAAKAAkAAAAOAA4AAAAKAAgAAAAOAA8AAAAKAAkAAAAPAA4AAAAKAAgAAAAPAA8AAAAKAAkAAAAQAA4AAAAKAAgAAAAQAA8AAAAKAAkAAAARAA4AAAAKAAgAAAARAA8AAAAKAAkAAAASAA4AAAAKAAgAAAASAA8AAAAKAAkAAAATAA4AAAAKAAgAAAATAA8AAAAKAAkAAAANAA0AAAABAAQAAAAOAA0AAAABAAQAAAAPAA0AAAABAAQAAAAQAA0AAAABAAQAAAARAA0AAAABAAQAAAASAA0AAAABAAQAAAATAA0AAAABAAQAAAAVAA0AAAADAAQAAAAUAA0AAAABAAQAAAAOABoAAAACAAcAAAAOABkAAAACAAUAAAANABoAAAABAAcAAAANABkAAAABAAUAAAAMABoAAAABAAcAAAAMABkAAAABAAUAAAALABoAAAAAAAcAAAALABkAAAAAAAUAAAAWABQAAAACAAcAAAAWABMAAAACAAUAAAAVABQAAAABAAcAAAAVABMAAAABAAUAAAAUABQAAAAAAAcAAAAUABMAAAAAAAUAAAAUABkAAAACAAcAAAAUABgAAAACAAYAAAAUABcAAAACAAUAAAATABkAAAAAAAcAAAATABgAAAAAAAYAAAATABcAAAAAAAUAAAAFABsAAAACAAcAAAAFABoAAAACAAYAAAAFABkAAAACAAUAAAAEABsAAAAAAAcAAAAEABoAAAAAAAYAAAAEABkAAAAAAAUAAAAHABoAAAAEAAQAAAAHABkAAAAFAAQAAAAOABQAAAABAAYAAAAKABUAAAAEAAQAAAAKABQAAAAAAAQAAAAKABMAAAAAAAQAAAAKABIAAAAFAAQAAAARABMAAAACAAcAAAARABIAAAACAAUAAAAQABMAAAAAAAcAAAAQABIAAAAAAAUAAAD9/xoAAAAEAAQAAAD9/xkAAAAAAAQAAAD9/xgAAAAAAAQAAAD9/xcAAAAAAAQAAAD9/xYAAAAFAAQAAAAOACAAAAADAAQAAAANACAAAAABAAQAAAAMACAAAAABAAQAAAALACAAAAACAAQAAAACACEAAAACAAcAAAACACAAAAACAAUAAAABACEAAAABAAcAAAABACAAAAABAAUAAAAAACEAAAABAAcAAAAAACAAAAABAAUAAAD//yEAAAAAAAcAAAD//yAAAAAAAAUAAAAOACMAAAADAAQAAAANACMAAAABAAQAAAAMACMAAAABAAQAAAALACMAAAABAAQAAAAKACMAAAABAAQAAAAJACMAAAABAAQAAAAIACMAAAABAAQAAAAHACMAAAABAAQAAAAGACMAAAABAAQAAAAFACMAAAABAAQAAAAEACMAAAACAAQAAAAWACEAAAACAAcAAAAWACAAAAACAAYAAAAWAB8AAAACAAUAAAAVACEAAAABAAcAAAAVACAAAAACAAgAAAAVAB8AAAABAAUAAAAUACEAAAAAAAcAAAAUACAAAAAAAAYAAAAUAB8AAAAAAAUAAAA=") +tile_set = ExtResource("5_bsah1") +metadata/_edit_lock_ = true + +[node name="Props" type="TileMapLayer" parent="Tilemaps"] +tile_set = ExtResource("5_bsah1") +metadata/_edit_lock_ = true + +[node name="Actors" type="Node2D" parent="Tilemaps"] +metadata/_edit_lock_ = true + +[node name="ActorEnemyTest" parent="Tilemaps/Actors" instance=ExtResource("12_8mkvw")] +position = Vector2(258, 364) + +[node name="CameraController" type="Camera2D" parent="."] +script = ExtResource("7_4a7df") +pixel_snap = false + +[node name="ReferenceRect" type="ReferenceRect" parent="."] +visible = false +offset_left = -38.0 +offset_top = -39.0 +offset_right = 124.0 +offset_bottom = 44.0 + +[node name="InventoryManager" type="Node2D" parent="."] +script = ExtResource("8_scbgd") + +[node name="HUD" parent="." instance=ExtResource("9_xs7rn")] + +[node name="CameraTarget" type="Node2D" parent="."] +position = Vector2(115, 328) +script = ExtResource("10_86lpq") + +[node name="PlayerStartPosition" type="Marker2D" parent="."] +position = Vector2(111, 305) + +[node name="AlarmManager" type="Node2D" parent="."] +script = ExtResource("11_njjjf") diff --git a/Scenes/Weapons/enemy_weapon_base.tscn b/Scenes/Weapons/enemy_weapon_base.tscn index 8e60b216..e1e2b878 100644 --- a/Scenes/Weapons/enemy_weapon_base.tscn +++ b/Scenes/Weapons/enemy_weapon_base.tscn @@ -1,7 +1,14 @@ [gd_scene load_steps=3 format=3 uid="uid://cj63k0dmk7tl1"] -[ext_resource type="PackedScene" uid="uid://crry0rgk7a8sm" path="res://Scenes/Weapons/BaseWeapon.tscn" id="1_60orr"] +[ext_resource type="Script" path="res://Scripts/Weapon.cs" id="1_1das2"] [ext_resource type="PackedScene" uid="uid://cuixq5ex0j40h" path="res://Scenes/enemyBullet.tscn" id="2_dyoou"] -[node name="EnemyWeapon" instance=ExtResource("1_60orr")] +[node name="EnemyWeapon" type="Sprite2D" node_paths=PackedStringArray("Muzzle")] +script = ExtResource("1_1das2") BulletScene = ExtResource("2_dyoou") +Muzzle = NodePath("Muzzle") + +[node name="Muzzle" type="Marker2D" parent="."] + +[node name="ShootTimer" type="Timer" parent="."] +one_shot = true diff --git a/Scenes/enemyBullet.tscn b/Scenes/enemyBullet.tscn index e4ba4924..c46edfc7 100644 --- a/Scenes/enemyBullet.tscn +++ b/Scenes/enemyBullet.tscn @@ -11,7 +11,6 @@ collision_layer = 128 collision_mask = 71 script = ExtResource("1_s0j1e") Speed = 200.0 -Owner = 2 metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="."] diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 0c6b123c..5ee6e8af 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -142,7 +142,7 @@ ActivationType = 0 Targets = Array[NodePath]([NodePath("../Rumia")]) WaitForCompletion = true -[sub_resource type="Resource" id="Resource_oorlt"] +[sub_resource type="Resource" id="Resource_c0pje"] resource_local_to_scene = true script = ExtResource("49_0si7g") Target = NodePath(".") @@ -678,7 +678,7 @@ Events = Array[Object]([SubResource("Resource_068l7"), SubResource("Resource_l3n [node name="BossBattleStartScript" parent="." instance=ExtResource("43_kf3qc")] position = Vector2(-1487, -396) -Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_oorlt")]) +Events = Array[Object]([SubResource("Resource_4f4id"), SubResource("Resource_s2o7m"), SubResource("Resource_b1dht"), SubResource("Resource_xrgpy"), SubResource("Resource_c0pje")]) [node name="Enemy8" parent="." instance=ExtResource("47_u1ve6")] position = Vector2(-1117, 184) diff --git a/Scripts/Components/Actors/AnimationHandler.cs b/Scripts/Components/Actors/AnimationHandler.cs index 3af5212d..1bda3553 100644 --- a/Scripts/Components/Actors/AnimationHandler.cs +++ b/Scripts/Components/Actors/AnimationHandler.cs @@ -25,7 +25,6 @@ public partial class AnimationHandler : ActorModule public override void Update(double delta) { - var direction = _parent.FacingDirection; //GetSnappedDirection(); if (_parent.Velocity.Length() > 0) @@ -47,7 +46,7 @@ public partial class AnimationHandler : ActorModule } - private string DirectionToString(Vector2 direction) + protected virtual string DirectionToString(Vector2 direction) { var angle = Mathf.RadToDeg(direction.Angle()); angle = Mathf.PosMod(angle, 360); diff --git a/Scripts/Components/Actors/EnemyNavigationMovement.cs b/Scripts/Components/Actors/EnemyNavigationMovement.cs index 17ea68e1..bf3bae74 100644 --- a/Scripts/Components/Actors/EnemyNavigationMovement.cs +++ b/Scripts/Components/Actors/EnemyNavigationMovement.cs @@ -27,6 +27,8 @@ public partial class EnemyNavigationMovement : MovementHandler [Export(PropertyHint.Layers2DPhysics)] public uint CollisionMask { get; set; } + + [Export] public Weapon EquippedWeapon; public bool NavigationEnabled { @@ -71,7 +73,7 @@ public partial class EnemyNavigationMovement : MovementHandler private void AlarmManagerOnAlarmEnabled(Vector2 location) { - if (NavigationEnabled && location.DistanceTo(this.GlobalPosition) <= AlarmReactRange) + if (NavigationEnabled && location.DistanceTo(_parent.GlobalPosition) <= AlarmReactRange) { GD.Print($"Enemy {Name} alerted"); _actorAi.State = EnemyState.Alert; @@ -83,8 +85,7 @@ public partial class EnemyNavigationMovement : MovementHandler { if (_actorAi.Ai is not AiState.Enabled) return; - - + switch (_actorAi.State) { case EnemyState.Idle: @@ -115,15 +116,14 @@ public partial class EnemyNavigationMovement : MovementHandler var nextPathPosition = _navigationAgent.GetNextPathPosition(); var newVelocity = currentAgentPosition.DirectionTo(nextPathPosition) * _parent.MovementSpeed; - - + // Navigation is over, can do other things like shooting if (_navigationAgent.IsNavigationFinished()) { // Shoot player if (IsPlayerInSight) { - //Shoot(); + Shoot(); } // TODO: If player totally left the max range it should stop shooting and go back to idle @@ -146,7 +146,7 @@ public partial class EnemyNavigationMovement : MovementHandler { if (IsPlayerInSight) { - //Shoot(); + Shoot(); } } @@ -154,6 +154,19 @@ public partial class EnemyNavigationMovement : MovementHandler } } + private void Shoot() + { + if (EquippedWeapon == null || !_lastPlayerPosition.HasValue) return; + + var direction = (_lastPlayerPosition.Value - _parent.GlobalPosition).Normalized(); + + // Shoot at the player's last known position + EquippedWeapon.ShootDirection = direction; + FacingDirection = direction; + + EquippedWeapon.Shoot(); + } + public void _on_navigation_agent_2d_velocity_computed(Vector2 safeVelocity) { _parent.Velocity = safeVelocity; diff --git a/Scripts/Components/FSM/State.cs b/Scripts/Components/FSM/State.cs new file mode 100644 index 00000000..64bcbe6e --- /dev/null +++ b/Scripts/Components/FSM/State.cs @@ -0,0 +1,8 @@ +using Godot; + +namespace Cirno.Scripts.Components.FSM; + +public partial class State : Node2D +{ + +} \ No newline at end of file diff --git a/Scripts/Resources/Events/CameraTargetEvent.cs b/Scripts/Resources/Events/CameraTargetEvent.cs index 9056ed84..4892a5e7 100644 --- a/Scripts/Resources/Events/CameraTargetEvent.cs +++ b/Scripts/Resources/Events/CameraTargetEvent.cs @@ -16,6 +16,4 @@ public partial class CameraTargetEvent : CameraTargetPlayerEvent GameManager.Instance.CameraTargetObject(parent.GetNode(Target), Offset); _isComplete = true; } - - } \ No newline at end of file