From dc8777c3d9c045525ce6d106f3a0ea76f687d9c1 Mon Sep 17 00:00:00 2001 From: Marco Date: Mon, 24 Mar 2025 10:26:13 +0100 Subject: [PATCH] Spellcard test map --- Resources/BossPhases/Rumia_SP1.tres | 2 +- Resources/Debug/DebugLevels.tres | 11 ++- Scenes/Maps/SimpleScene.tscn | 29 ++----- Scenes/Maps/SpellCardTest.tscn | 116 ++++++++++++++++++++++++++++ Scenes/test.tscn | 7 +- Scripts/Actors/ActorSpawner.cs | 4 +- Scripts/Actors/Boss.cs | 16 ++-- Scripts/Actors/BossSpawner.cs | 20 +++++ Scripts/Actors/BossSpawner.cs.uid | 1 + 9 files changed, 163 insertions(+), 43 deletions(-) create mode 100644 Scenes/Maps/SpellCardTest.tscn create mode 100644 Scripts/Actors/BossSpawner.cs create mode 100644 Scripts/Actors/BossSpawner.cs.uid diff --git a/Resources/BossPhases/Rumia_SP1.tres b/Resources/BossPhases/Rumia_SP1.tres index 9dc586ab..9e6c6f67 100644 --- a/Resources/BossPhases/Rumia_SP1.tres +++ b/Resources/BossPhases/Rumia_SP1.tres @@ -38,7 +38,7 @@ Owner = 2 DamageType = 0 Controllable = false Modifier = SubResource("Resource_80ngy") -TimeModifiers = null +TimeModifiers = Array[Object]([]) [sub_resource type="Resource" id="Resource_0v4v8"] script = ExtResource("2_7268a") diff --git a/Resources/Debug/DebugLevels.tres b/Resources/Debug/DebugLevels.tres index 30e8efa8..761b0414 100644 --- a/Resources/Debug/DebugLevels.tres +++ b/Resources/Debug/DebugLevels.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" script_class="DebugMapSelectData" load_steps=36 format=3 uid="uid://d1lc8lhq1b05p"] +[gd_resource type="Resource" script_class="DebugMapSelectData" load_steps=37 format=3 uid="uid://d1lc8lhq1b05p"] [ext_resource type="Script" uid="uid://durmwwyw3dnm6" path="res://Scripts/Resources/DebugMenu/DebugMapSelectData.cs" id="1_6kwth"] [ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="1_ov731"] @@ -174,6 +174,13 @@ Path = "res://Scenes/Maps/Level1_End_Cutscene.tscn" _name = "Level 1 Intermission" metadata/_custom_type_script = "uid://dnthdjrx78u6m" +[sub_resource type="Resource" id="Resource_xhgge"] +script = ExtResource("2_tnajf") +Enabled = true +Path = "uid://bitld8jkjkflo" +_name = "Spell Card Test" +metadata/_custom_type_script = "uid://dnthdjrx78u6m" + [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"), SubResource("Resource_6ijnv"), SubResource("Resource_bkci5"), SubResource("Resource_ognca"), SubResource("Resource_nbnej"), SubResource("Resource_w7lsm"), SubResource("Resource_vq1um"), SubResource("Resource_hougo")]) +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"), SubResource("Resource_bkci5"), SubResource("Resource_ognca"), SubResource("Resource_nbnej"), SubResource("Resource_w7lsm"), SubResource("Resource_vq1um"), SubResource("Resource_hougo"), SubResource("Resource_xhgge")]) diff --git a/Scenes/Maps/SimpleScene.tscn b/Scenes/Maps/SimpleScene.tscn index 691c31e0..54f3d57f 100644 --- a/Scenes/Maps/SimpleScene.tscn +++ b/Scenes/Maps/SimpleScene.tscn @@ -1,13 +1,10 @@ -[gd_scene load_steps=17 format=4 uid="uid://prgabjxh44lf"] +[gd_scene load_steps=13 format=4 uid="uid://prgabjxh44lf"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_4uv21"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_xfbh8"] -[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_cko4a"] [ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_bc0u7"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="4_em3f4"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="5_75e1c"] -[ext_resource type="Script" uid="uid://v2f387aad33k" path="res://Scripts/Components/FSM/ActorStateMachine.cs" id="7_cko4a"] -[ext_resource type="SpriteFrames" uid="uid://bcc5mlwwnkvri" path="res://Resources/Sprites/Fairy.tres" id="8_gp1xa"] [ext_resource type="Script" uid="uid://cfya7sndh7vy2" path="res://Scenes/CameraController.gd" id="11_uct4d"] [ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="12_3bxj4"] [ext_resource type="Script" uid="uid://c5nxsq3tyxcx6" path="res://Scripts/InventoryManager.cs" id="12_hibtc"] @@ -18,9 +15,7 @@ [sub_resource type="Resource" id="Resource_6wo78"] script = ExtResource("4_bc0u7") EggIndex = 0 -StartingEquipment = Array[ExtResource("3_cko4a")]([]) - -[sub_resource type="CircleShape2D" id="CircleShape2D_5xgmc"] +StartingEquipment = [] [node name="GameScene" type="Node2D"] process_mode = 3 @@ -34,7 +29,7 @@ MapStartData = SubResource("Resource_6wo78") [node name="Tilemaps" type="Node2D" parent="."] process_mode = 1 -[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers")] +[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers") groups=["Solid"]] tile_map_data = PackedByteArray("AAAEABAAAAAEAAIAAAAEABEAAAAEAAIAAAAEABIAAAAEAAIAAAAEABMAAAAEAAIAAAAEABQAAAAEAAIAAAAEABUAAAAEAAIAAAAEABYAAAAEAAIAAAAFABAAAAAEAAIAAAAFABEAAAAEAAIAAAAFABIAAAAEAAIAAAAFABMAAAAEAAIAAAAFABQAAAAEAAIAAAAFABUAAAAEAAIAAAAFABYAAAAEAAIAAAAGABAAAAAEAAIAAAAGABEAAAAEAAIAAAAGABIAAAAEAAIAAAAGABMAAAAEAAIAAAAGABQAAAAEAAIAAAAGABUAAAAEAAIAAAAGABYAAAAEAAIAAAAHABAAAAAEAAIAAAAHABEAAAAEAAIAAAAHABIAAAAEAAIAAAAHABMAAAAEAAIAAAAHABQAAAAEAAIAAAAHABUAAAAEAAIAAAAHABYAAAAEAAIAAAAIABAAAAAEAAIAAAAIABEAAAAEAAIAAAAIABIAAAAEAAIAAAAIABMAAAAEAAIAAAAIABQAAAAEAAIAAAAIABUAAAAEAAIAAAAIABYAAAAEAAIAAAAJABAAAAAEAAIAAAAJABEAAAAEAAIAAAAJABIAAAAEAAIAAAAJABMAAAAEAAIAAAAJABQAAAAEAAIAAAAJABUAAAAEAAIAAAAJABYAAAAEAAIAAAAKABAAAAAEAAIAAAAKABEAAAAEAAIAAAAKABIAAAAEAAIAAAAKABMAAAAEAAIAAAAKABQAAAAEAAIAAAAKABUAAAAEAAIAAAAKABYAAAAEAAIAAAADABAAAAAEAAIAAAADABEAAAAEAAIAAAADABIAAAAEAAIAAAADABMAAAAEAAIAAAADABQAAAAEAAIAAAADABUAAAAEAAIAAAADABYAAAAEAAIAAAADABcAAAAEAAIAAAADABgAAAAEAAIAAAAEABcAAAAEAAIAAAAEABgAAAAEAAIAAAAFABcAAAAEAAIAAAAFABgAAAAEAAIAAAAGABcAAAAEAAIAAAAGABgAAAAEAAIAAAAHABcAAAAEAAIAAAAHABgAAAAEAAIAAAAIABcAAAAEAAIAAAAIABgAAAAEAAIAAAAJABcAAAAEAAIAAAAJABgAAAAEAAIAAAAKABcAAAAEAAIAAAAKABgAAAAEAAIAAAALABAAAAAEAAIAAAALABEAAAAEAAIAAAALABIAAAAEAAIAAAALABMAAAAEAAIAAAALABQAAAAEAAIAAAALABUAAAAEAAIAAAALABYAAAAEAAIAAAALABcAAAAEAAIAAAALABgAAAAEAAIAAAA=") tile_set = ExtResource("4_em3f4") script = ExtResource("5_75e1c") @@ -42,31 +37,17 @@ _solidLayers = [NodePath("../Solid"), NodePath("../Props")] metadata/_edit_lock_ = true [node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] -tile_map_data = PackedByteArray("AAACAA0AAAAAAAsAAAADAA0AAAABAAQAAAAEAA0AAAABAAQAAAAFAA0AAAABAAQAAAAGAA0AAAABAAQAAAAHAA0AAAABAAQAAAAIAA0AAAABAAQAAAAJAA0AAAABAAQAAAAKAA0AAAABAAQAAAALAA0AAAABAAQAAAAMAA0AAAABAAsAAAAMAA4AAAAAAAQAAAAMAA8AAAAAAAQAAAAMABAAAAAAAAQAAAAMABEAAAAAAAQAAAAMABMAAAAAAAQAAAAMABIAAAAAAAQAAAAMABQAAAAAAAQAAAAMABUAAAAAAAQAAAAMABYAAAAAAAQAAAAMABcAAAAAAAQAAAAMABgAAAAAAAQAAAAMABkAAAABAAwAAAALABkAAAABAAQAAAAKABkAAAABAAQAAAAJABkAAAABAAQAAAAIABkAAAABAAQAAAAHABkAAAABAAQAAAAGABkAAAABAAQAAAAFABkAAAABAAQAAAAEABkAAAABAAQAAAADABkAAAABAAQAAAACABkAAAAAAAwAAAACABgAAAAAAAQAAAACABYAAAAAAAQAAAACABcAAAAAAAQAAAACABUAAAAAAAQAAAACABQAAAAAAAQAAAACABIAAAAAAAQAAAACABMAAAAAAAQAAAACABEAAAAAAAQAAAACABAAAAAAAAQAAAACAA8AAAAAAAQAAAACAA4AAAAAAAQAAAADAA4AAAABAAEAAAADAA8AAAABAAEAAAAEAA4AAAABAAEAAAAEAA8AAAABAAEAAAAFAA4AAAABAAEAAAAFAA8AAAABAAEAAAAGAA4AAAABAAEAAAAGAA8AAAABAAEAAAAHAA4AAAABAAEAAAAHAA8AAAABAAEAAAAIAA4AAAABAAEAAAAIAA8AAAABAAEAAAAJAA4AAAABAAEAAAAJAA8AAAABAAEAAAAKAA4AAAABAAEAAAAKAA8AAAABAAEAAAALAA4AAAABAAEAAAALAA8AAAABAAEAAAA=") +tile_map_data = PackedByteArray("AAACAA0AAAAAAAsAAAADAA0AAAABAAQAAAAEAA0AAAABAAQAAAAFAA0AAAABAAQAAAAGAA0AAAABAAQAAAAHAA0AAAABAAQAAAAIAA0AAAABAAQAAAAJAA0AAAABAAQAAAAKAA0AAAABAAQAAAALAA0AAAABAAQAAAAMAA0AAAABAAsAAAAMAA4AAAAAAAQAAAAMAA8AAAAAAAQAAAAMABAAAAAAAAQAAAAMABEAAAAAAAQAAAAMABMAAAAAAAQAAAAMABIAAAAAAAQAAAAMABQAAAAAAAQAAAAMABUAAAAAAAQAAAAMABYAAAAAAAQAAAAMABcAAAAAAAQAAAAMABgAAAAAAAQAAAAMABkAAAABAAwAAAALABkAAAABAAQAAAAKABkAAAABAAQAAAAJABkAAAABAAQAAAAIABkAAAABAAQAAAAHABkAAAABAAQAAAAGABkAAAABAAQAAAAFABkAAAABAAQAAAAEABkAAAABAAQAAAADABkAAAABAAQAAAACABkAAAAAAAwAAAACABgAAAAAAAQAAAACABYAAAAAAAQAAAACABcAAAAAAAQAAAACABUAAAAAAAQAAAACABQAAAAAAAQAAAACABIAAAAAAAQAAAACABMAAAAAAAQAAAACABEAAAAAAAQAAAACABAAAAAAAAQAAAACAA8AAAAAAAQAAAACAA4AAAAAAAQAAAADAA4AAAAKAAgAAAADAA8AAAAKAAkAAAAEAA4AAAAKAAgAAAAEAA8AAAAKAAkAAAAFAA4AAAAKAAgAAAAFAA8AAAAKAAkAAAAGAA4AAAAKAAgAAAAGAA8AAAAKAAkAAAAHAA4AAAAKAAgAAAAHAA8AAAAKAAkAAAAIAA4AAAAKAAgAAAAIAA8AAAAKAAkAAAAJAA4AAAAKAAgAAAAJAA8AAAAKAAkAAAAKAA4AAAAKAAgAAAAKAA8AAAAKAAkAAAALAA4AAAAKAAgAAAALAA8AAAAKAAkAAAA=") tile_set = ExtResource("4_em3f4") metadata/_edit_lock_ = true -[node name="Props" type="TileMapLayer" parent="Tilemaps"] +[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] tile_set = ExtResource("4_em3f4") metadata/_edit_lock_ = true [node name="Actors" type="Node2D" parent="Tilemaps"] metadata/_edit_lock_ = true -[node name="FSMEnemy" type="CharacterBody2D" parent="Tilemaps/Actors"] -position = Vector2(161.783, 298.229) -script = ExtResource("7_cko4a") -metadata/_edit_group_ = true - -[node name="CollisionShape2D" type="CollisionShape2D" parent="Tilemaps/Actors/FSMEnemy"] -shape = SubResource("CircleShape2D_5xgmc") - -[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Tilemaps/Actors/FSMEnemy"] -sprite_frames = ExtResource("8_gp1xa") -animation = &"down" - -[node name="Idle" type="Node2D" parent="Tilemaps/Actors/FSMEnemy"] - [node name="CameraController" type="Camera2D" parent="."] process_mode = 1 script = ExtResource("11_uct4d") diff --git a/Scenes/Maps/SpellCardTest.tscn b/Scenes/Maps/SpellCardTest.tscn new file mode 100644 index 00000000..aec8a947 --- /dev/null +++ b/Scenes/Maps/SpellCardTest.tscn @@ -0,0 +1,116 @@ +[gd_scene load_steps=26 format=4 uid="uid://bitld8jkjkflo"] + +[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_5vq8r"] +[ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_hw6hf"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_27s7d"] +[ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="3_uktdb"] +[ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_6qpgj"] +[ext_resource type="Resource" uid="uid://cfq121rs3bsu8" path="res://Resources/Items/Cheat_Gun_Item.tres" id="4_wr8yc"] +[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="5_y4jv8"] +[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="6_b3f46"] +[ext_resource type="Script" uid="uid://o7euvh7co21t" path="res://Scripts/Actors/BossSpawner.cs" id="6_t0f5c"] +[ext_resource type="PackedScene" uid="uid://d1rlw6ddpmrn8" path="res://Scenes/Actors/Rumia.tscn" id="7_27s7d"] +[ext_resource type="Script" uid="uid://cfya7sndh7vy2" path="res://Scenes/CameraController.gd" id="7_e816t"] +[ext_resource type="PackedScene" uid="uid://bwlstkdibs7oc" path="res://Scenes/HUD/BossHud.tscn" id="7_grrkd"] +[ext_resource type="PackedScene" uid="uid://crph24e6e0v0q" path="res://Scenes/Interactable/Control_Pad.tscn" id="8_6qpgj"] +[ext_resource type="Script" uid="uid://c5nxsq3tyxcx6" path="res://Scripts/InventoryManager.cs" id="8_t0f5c"] +[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="8_uktdb"] +[ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="9_grrkd"] +[ext_resource type="Resource" uid="uid://ccj0cqbveey8c" path="res://Resources/BossPhases/Rumia_SP1.tres" id="9_wr8yc"] +[ext_resource type="Texture2D" uid="uid://begjak1f47840" path="res://Sprites/Expression/Rumia/Rumia05_resized.png" id="10_1mcdj"] +[ext_resource type="Script" uid="uid://bdshph801ac2i" path="res://Scenes/CameraTarget.gd" id="10_uktdb"] +[ext_resource type="Script" uid="uid://inasa76li3ym" path="res://Scripts/Resources/ScriptableBullets/BossScript.cs" id="11_vcaqw"] +[ext_resource type="Script" uid="uid://cnkipcolyj61w" path="res://Scripts/AlarmManager.cs" id="11_wr8yc"] +[ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="12_1mcdj"] +[ext_resource type="Script" uid="uid://kig2pxmy6nud" path="res://Scripts/Actors/SpellClassTest.cs" id="17_1mcdj"] + +[sub_resource type="Resource" id="Resource_6wo78"] +script = ExtResource("4_6qpgj") +EggIndex = 0 +StartingEquipment = [ExtResource("3_uktdb"), ExtResource("4_wr8yc")] + +[sub_resource type="Resource" id="Resource_cfs7m"] +script = ExtResource("11_vcaqw") +BossName = &"Rumia" +Phases = Array[ExtResource("8_uktdb")]([ExtResource("9_wr8yc")]) +PortraitTexture = ExtResource("10_1mcdj") +HudPrefab = ExtResource("7_grrkd") +metadata/_custom_type_script = "uid://inasa76li3ym" + +[node name="GameScene" type="Node2D"] +process_mode = 3 +script = ExtResource("1_5vq8r") +PlayerTemplate = ExtResource("2_hw6hf") +SpawnMarkers = Dictionary[int, NodePath]({ +0: NodePath("PlayerStartPosition") +}) +StartingEquipment = Array[ExtResource("3_27s7d")]([ExtResource("3_uktdb"), ExtResource("4_wr8yc")]) +MapStartData = SubResource("Resource_6wo78") + +[node name="Tilemaps" type="Node2D" parent="."] +process_mode = 1 + +[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers") groups=["Solid"]] +tile_map_data = PackedByteArray("AAAEABAAAAAEAAAAAAAEABEAAAAEAAAAAAAEABIAAAAEAAAAAAAEABMAAAAEAAAAAAAEABQAAAAEAAAAAAAEABUAAAAEAAAAAAAEABYAAAAEAAAAAAAFABAAAAAEAAAAAAAFABEAAAAEAAAAAAAFABIAAAAEAAAAAAAFABMAAAAEAAAAAAAFABQAAAAEAAAAAAAFABUAAAAEAAAAAAAFABYAAAAEAAAAAAAGABAAAAAEAAAAAAAGABEAAAAEAAAAAAAGABIAAAAEAAAAAAAGABMAAAAEAAAAAAAGABQAAAAEAAAAAAAGABUAAAAEAAAAAAAGABYAAAAEAAAAAAAHABAAAAAEAAAAAAAHABEAAAAEAAAAAAAHABIAAAAEAAAAAAAHABMAAAAEAAAAAAAHABQAAAAEAAAAAAAHABUAAAAEAAAAAAAHABYAAAAEAAAAAAAIABAAAAAEAAAAAAAIABEAAAAEAAAAAAAIABIAAAAEAAAAAAAIABMAAAAEAAAAAAAIABQAAAAEAAAAAAAIABUAAAAEAAAAAAAIABYAAAAEAAAAAAAJABAAAAAEAAAAAAAJABEAAAAEAAAAAAAJABIAAAAEAAAAAAAJABMAAAAEAAAAAAAJABQAAAAEAAAAAAAJABUAAAAEAAAAAAAJABYAAAAEAAAAAAAKABAAAAAEAAAAAAAKABEAAAAEAAAAAAAKABIAAAAEAAAAAAAKABMAAAAEAAAAAAAKABQAAAAEAAAAAAAKABUAAAAEAAAAAAAKABYAAAAEAAAAAAADABAAAAAEAAAAAAADABEAAAAEAAAAAAADABIAAAAEAAAAAAADABMAAAAEAAAAAAADABQAAAAEAAAAAAADABUAAAAEAAAAAAADABYAAAAEAAAAAAADABcAAAAEAAAAAAADABgAAAAEAAAAAAAEABcAAAAEAAAAAAAEABgAAAAEAAAAAAAFABcAAAAEAAAAAAAFABgAAAAEAAAAAAAGABcAAAAEAAAAAAAGABgAAAAEAAAAAAAHABcAAAAEAAAAAAAHABgAAAAEAAAAAAAIABcAAAAEAAAAAAAIABgAAAAEAAAAAAAJABcAAAAEAAAAAAAJABgAAAAEAAAAAAAKABcAAAAEAAAAAAAKABgAAAAEAAAAAAALABAAAAAEAAAAAAALABEAAAAEAAAAAAALABIAAAAEAAAAAAALABMAAAAEAAAAAAALABQAAAAEAAAAAAALABUAAAAEAAAAAAALABYAAAAEAAAAAAALABcAAAAEAAAAAAALABgAAAAEAAAAAAAAABAAAAAEAAAAAAABABAAAAAEAAAAAAACABEAAAAEAAAAAAAMABkAAAAEAAAAAAANABoAAAAEAAAAAAAOABoAAAAEAAAAAAAOABsAAAAEAAAAAAAPABsAAAAEAAAAAAAAABEAAAAEAAAAAAAAABIAAAAEAAAAAAAAABMAAAAEAAAAAAAAABQAAAAEAAAAAAAAABUAAAAEAAAAAAAAABYAAAAEAAAAAAAAABcAAAAEAAAAAAAAABgAAAAEAAAAAAAAABkAAAAEAAAAAAAAABoAAAAEAAAAAAAAABsAAAAEAAAAAAABABEAAAAEAAAAAAABABIAAAAEAAAAAAABABMAAAAEAAAAAAABABQAAAAEAAAAAAABABUAAAAEAAAAAAABABYAAAAEAAAAAAABABcAAAAEAAAAAAABABgAAAAEAAAAAAABABkAAAAEAAAAAAABABoAAAAEAAAAAAABABsAAAAEAAAAAAACABAAAAAEAAAAAAACABIAAAAEAAAAAAACABMAAAAEAAAAAAACABQAAAAEAAAAAAACABUAAAAEAAAAAAACABYAAAAEAAAAAAACABcAAAAEAAAAAAACABgAAAAEAAAAAAACABkAAAAEAAAAAAACABoAAAAEAAAAAAACABsAAAAEAAAAAAADABkAAAAEAAAAAAADABoAAAAEAAAAAAADABsAAAAEAAAAAAAEABkAAAAEAAAAAAAEABoAAAAEAAAAAAAEABsAAAAEAAAAAAAFABkAAAAEAAAAAAAFABoAAAAEAAAAAAAFABsAAAAEAAAAAAAGABkAAAAEAAAAAAAGABoAAAAEAAAAAAAGABsAAAAEAAAAAAAHABkAAAAEAAAAAAAHABoAAAAEAAAAAAAHABsAAAAEAAAAAAAIABkAAAAEAAAAAAAIABoAAAAEAAAAAAAIABsAAAAEAAAAAAAJABkAAAAEAAAAAAAJABoAAAAEAAAAAAAJABsAAAAEAAAAAAAKABkAAAAEAAAAAAAKABoAAAAEAAAAAAAKABsAAAAEAAAAAAALABkAAAAEAAAAAAALABoAAAAEAAAAAAALABsAAAAEAAAAAAAMABAAAAAEAAAAAAAMABEAAAAEAAAAAAAMABIAAAAEAAAAAAAMABMAAAAEAAAAAAAMABQAAAAEAAAAAAAMABUAAAAEAAAAAAAMABYAAAAEAAAAAAAMABcAAAAEAAAAAAAMABgAAAAEAAAAAAAMABoAAAAEAAAAAAAMABsAAAAEAAAAAAANABAAAAAEAAAAAAANABEAAAAEAAAAAAANABIAAAAEAAAAAAANABMAAAAEAAAAAAANABQAAAAEAAAAAAANABUAAAAEAAAAAAANABYAAAAEAAAAAAANABcAAAAEAAAAAAANABgAAAAEAAAAAAANABkAAAAEAAAAAAANABsAAAAEAAAAAAAOABAAAAAEAAAAAAAOABEAAAAEAAAAAAAOABIAAAAEAAAAAAAOABMAAAAEAAAAAAAOABQAAAAEAAAAAAAOABUAAAAEAAAAAAAOABYAAAAEAAAAAAAOABcAAAAEAAAAAAAOABgAAAAEAAAAAAAOABkAAAAEAAAAAAAPABAAAAAEAAAAAAAPABEAAAAEAAAAAAAPABIAAAAEAAAAAAAPABMAAAAEAAAAAAAPABQAAAAEAAAAAAAPABUAAAAEAAAAAAAPABYAAAAEAAAAAAAPABcAAAAEAAAAAAAPABgAAAAEAAAAAAAPABkAAAAEAAAAAAAPABoAAAAEAAAAAAA=") +tile_set = ExtResource("5_y4jv8") +script = ExtResource("6_b3f46") +_solidLayers = [NodePath("../Solid"), NodePath("../Props")] +metadata/_edit_lock_ = true + +[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_map_data = PackedByteArray("AAACAA0AAAABAAQAAAADAA0AAAABAAQAAAAEAA0AAAABAAQAAAAFAA0AAAABAAQAAAAGAA0AAAABAAQAAAAHAA0AAAABAAQAAAAIAA0AAAABAAQAAAAJAA0AAAABAAQAAAAKAA0AAAABAAQAAAALAA0AAAABAAQAAAAMAA0AAAABAAQAAAADAA4AAAAKAAgAAAADAA8AAAAKAAkAAAAEAA4AAAAKAAgAAAAEAA8AAAAKAAkAAAAFAA4AAAAKAAgAAAAFAA8AAAAKAAkAAAAGAA4AAAAKAAgAAAAGAA8AAAAKAAkAAAAHAA4AAAAKAAgAAAAHAA8AAAAKAAkAAAAIAA4AAAAKAAgAAAAIAA8AAAAKAAkAAAAJAA4AAAAKAAgAAAAJAA8AAAAKAAkAAAAKAA4AAAAKAAgAAAAKAA8AAAAKAAkAAAALAA4AAAAKAAgAAAALAA8AAAAKAAkAAAAQAA0AAAABAAsAAAAPAA0AAAABAAQAAAAOAA0AAAABAAQAAAANAA0AAAABAAQAAAAQABwAAAABAAwAAAAQABsAAAAAAAQAAAAQABoAAAAAAAQAAAAQABkAAAAAAAQAAAAQABgAAAAAAAQAAAAQABcAAAAAAAQAAAAQABYAAAAAAAQAAAAQABUAAAAAAAQAAAAQABQAAAAAAAQAAAAQABMAAAAAAAQAAAAQABIAAAAAAAQAAAAQABEAAAAAAAQAAAAQABAAAAAAAAQAAAAQAA8AAAAAAAQAAAAQAA4AAAAAAAQAAAAPABwAAAABAAQAAAAOABwAAAABAAQAAAANABwAAAABAAQAAAAMABwAAAABAAQAAAALABwAAAABAAQAAAAKABwAAAABAAQAAAAJABwAAAABAAQAAAAIABwAAAABAAQAAAAHABwAAAABAAQAAAAGABwAAAABAAQAAAAFABwAAAABAAQAAAAEABwAAAABAAQAAAADABwAAAABAAQAAAACABwAAAABAAQAAAABABwAAAABAAQAAAAAABwAAAABAAQAAAD//xwAAAAAAAwAAAD//xsAAAAAAAQAAAD//xoAAAAAAAQAAAD//xkAAAAAAAQAAAD//xgAAAAAAAQAAAD//xcAAAAAAAQAAAD//xYAAAAAAAQAAAD//xUAAAAAAAQAAAD//xQAAAAAAAQAAAD//xMAAAAAAAQAAAD//xIAAAAAAAQAAAD//xEAAAAAAAQAAAD//xAAAAAAAAQAAAD//w8AAAAAAAQAAAD//w4AAAAAAAQAAAD//w0AAAAAAAsAAAABAA0AAAABAAQAAAAAAA0AAAABAAQAAAAAAA4AAAAKAAgAAAAAAA8AAAAKAAkAAAABAA4AAAAKAAgAAAABAA8AAAAKAAkAAAACAA4AAAAKAAgAAAACAA8AAAAKAAkAAAAMAA4AAAAKAAgAAAAMAA8AAAAKAAkAAAANAA4AAAAKAAgAAAANAA8AAAAKAAkAAAAOAA4AAAAKAAgAAAAOAA8AAAAKAAkAAAAPAA4AAAAKAAgAAAAPAA8AAAAKAAkAAAA=") +tile_set = ExtResource("5_y4jv8") +metadata/_edit_lock_ = true + +[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] +tile_set = ExtResource("5_y4jv8") +metadata/_edit_lock_ = true + +[node name="Actors" type="Node2D" parent="Tilemaps"] +metadata/_edit_lock_ = true + +[node name="RumiaSpawnerSP1" type="Node2D" parent="Tilemaps/Actors"] +position = Vector2(127, 304) +script = ExtResource("6_t0f5c") +BossScript = SubResource("Resource_cfs7m") +ActorPrefab = ExtResource("7_27s7d") + +[node name="ControlPad" parent="Tilemaps/Actors" node_paths=PackedStringArray("Target") instance=ExtResource("8_6qpgj")] +position = Vector2(34, 426) +Target = NodePath("../Node2D") + +[node name="Node2D" type="Node2D" parent="Tilemaps/Actors"] +script = ExtResource("17_1mcdj") + +[node name="CameraController" type="Camera2D" parent="."] +process_mode = 1 +script = ExtResource("7_e816t") +pixel_snap = false +enable_smoothing = 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_t0f5c") + +[node name="HUD" parent="." instance=ExtResource("9_grrkd")] + +[node name="CameraTarget" type="Node2D" parent="."] +position = Vector2(115, 328) +script = ExtResource("10_uktdb") + +[node name="PlayerStartPosition" type="Marker2D" parent="."] +position = Vector2(100, 424) + +[node name="AlarmManager" type="Node2D" parent="."] +process_mode = 1 +script = ExtResource("11_wr8yc") + +[node name="AudioStreamPlayer2D" parent="." instance=ExtResource("12_1mcdj")] +process_mode = 3 +autoplay = true diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 8927c545..a2270e86 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=141 format=4 uid="uid://bv451a8wgty4u"] +[gd_scene load_steps=140 format=4 uid="uid://bv451a8wgty4u"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_8tmoj"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_ksslq"] @@ -104,7 +104,6 @@ [ext_resource type="Resource" uid="uid://bj331rcsq65es" path="res://Resources/Bullets/EmitterTestBullet.tres" id="95_f37sa"] [ext_resource type="Resource" uid="uid://dodwpect0ldjf" path="res://Resources/Items/Heart_Pickup.tres" id="95_srv0g"] [ext_resource type="PackedScene" uid="uid://nupd3pg74vua" path="res://Scenes/Activable/ScriptableInvisibleEmitter.tscn" id="96_ygp23"] -[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="97_0bqta"] [ext_resource type="Script" uid="uid://c0ndqalsc4jve" path="res://Scripts/AttackPatterns/SpiralPattern.cs" id="98_gvbi8"] [ext_resource type="Script" uid="uid://bngko08ho85p6" path="res://Scripts/Resources/BulletScript.cs" id="99_j6vrf"] [ext_resource type="PackedScene" uid="uid://1yxieu8ekvkm" path="res://Scenes/Items/Heart_Extend_Pickup.tscn" id="99_xwjvv"] @@ -256,7 +255,7 @@ DamageType = 0 OverrideControllable = false Controllable = false OverrideCreationModifier = false -TimeModifiers = Array[ExtResource("97_0bqta")]([]) +TimeModifiers = [] WaitForCompletion = true metadata/_custom_type_script = "uid://c0ndqalsc4jve" @@ -1066,7 +1065,7 @@ position = Vector2(-2000, -736) [node name="ControlPad8" parent="Parallax2D/Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")] position = Vector2(-2027, -735) Targets = [NodePath("../HorizontalForceField")] -Requirements = Array[ExtResource("6_8tdlb")]([ExtResource("84_ma1ta")]) +Requirements = [ExtResource("84_ma1ta")] [node name="Ammo6" parent="Parallax2D/Factory Tilemaps/LevelProps" instance=ExtResource("34_17pjh")] position = Vector2(-872, -220) diff --git a/Scripts/Actors/ActorSpawner.cs b/Scripts/Actors/ActorSpawner.cs index 559bea68..861cb1b1 100644 --- a/Scripts/Actors/ActorSpawner.cs +++ b/Scripts/Actors/ActorSpawner.cs @@ -10,11 +10,11 @@ public partial class ActorSpawner : Node2D, IActivable [Export] public bool WaitForActorDeath { get; private set; } = true; - public Actor SpawnedActor { get; private set; } + public Node2D SpawnedActor { get; private set; } public virtual void Spawn() { - SpawnedActor = this.CreateSibling(ActorPrefab); + SpawnedActor = this.CreateSibling(ActorPrefab); } public bool Activate(ActivationType activationType = ActivationType.Toggle) diff --git a/Scripts/Actors/Boss.cs b/Scripts/Actors/Boss.cs index 482bfcef..f394ba6a 100644 --- a/Scripts/Actors/Boss.cs +++ b/Scripts/Actors/Boss.cs @@ -12,7 +12,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost { [Export] public string BossName { get; private set; } //[Export] private Array Phases; - [Export] public BossScript BossScript { get; private set; } + [Export] public BossScript BossScript { get; set; } //[Export] private PackedScene BossHudPrefab; [Export] public Vector2 BossPhaseAnimationStartingPosition = new(180, 10); @@ -20,9 +20,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost private bool _started = false; private bool _waiting = false; - - private GameManager _gameManager; - public GameManager GameManager => _gameManager; + private Vector2 _homePosition; public Vector2 HomePosition => _homePosition; private BossPhase CurrentPhase => BossScript.Phases[currentPhaseIndex]; @@ -48,19 +46,17 @@ public partial class Boss : Enemy, IActivable, IScriptHost GD.PrintErr($"No boss script defined in {this.Name}"); return; } - - _gameManager = this.GetGameManager(); _homePosition = this.GlobalPosition; _cameraMarker = new Marker2D(); - _gameManager.CallDeferred("add_child", _cameraMarker); + GameManager.Instance.CallDeferred("add_child", _cameraMarker); _cameraMarker.GlobalPosition = _homePosition + CameraOffset; if (BossScript.HudPrefab is not null) { _bossHud = BossScript.HudPrefab.Instantiate(); - _gameManager.CallDeferred("add_child", _bossHud); + GameManager.Instance.CallDeferred("add_child", _bossHud); _bossHud.Name = $"{BossName}_BossHud"; _bossHud.Visible = false; @@ -121,7 +117,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost _bossHud.QueueFree(); } - _gameManager.CameraTargetPlayer(); + GameManager.Instance.CameraTargetPlayer(); base.Explode(); } @@ -155,7 +151,7 @@ public partial class Boss : Enemy, IActivable, IScriptHost { _bossHud.Visible = true; } - _gameManager.CameraTargetObject(_cameraMarker); + GameManager.Instance.CameraTargetObject(_cameraMarker); StartPhase(CurrentPhase); return true; diff --git a/Scripts/Actors/BossSpawner.cs b/Scripts/Actors/BossSpawner.cs new file mode 100644 index 00000000..8d708e24 --- /dev/null +++ b/Scripts/Actors/BossSpawner.cs @@ -0,0 +1,20 @@ +using Cirno.Scripts.Resources.ScriptableBullets; +using Godot; + +namespace Cirno.Scripts.Actors; + +public partial class BossSpawner : ActorSpawner +{ + [Export] public BossScript BossScript { get; private set; } + + public override void Spawn() + { + base.Spawn(); + if (SpawnedActor is Boss boss) + { + boss.BossScript = BossScript; + + boss.Activate(); + } + } +} \ No newline at end of file diff --git a/Scripts/Actors/BossSpawner.cs.uid b/Scripts/Actors/BossSpawner.cs.uid new file mode 100644 index 00000000..aad85e71 --- /dev/null +++ b/Scripts/Actors/BossSpawner.cs.uid @@ -0,0 +1 @@ +uid://o7euvh7co21t