Enemy feedback and mapping fixes

This commit is contained in:
Marco 2025-05-08 10:56:00 +02:00
commit eb1e8cfcb8
11 changed files with 33 additions and 14 deletions

View file

@ -12,6 +12,7 @@ RoomName = &"BigTest"
Type = 1
ScenePath = &"uid://cglddtyl6o4fn"
Size = Vector2i(2, 2)
StartShrouded = true
DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)])
SpawnableEnemies = Array[Object]([ExtResource("1_w1ns8"), ExtResource("2_gohkc"), ExtResource("3_x42ya"), ExtResource("4_qo81h")])
DoorDirections = 30

View file

@ -10,7 +10,7 @@
script = ExtResource("5_rpfcq")
RoomName = &"LongX3Map"
Type = 1
ScenePath = &"uid://ss7hm1utnvn1"
ScenePath = &"uid://640f2h7vxpq1"
Size = Vector2i(1, 3)
StartShrouded = true
DoorGridPositions = Array[Vector2i]([Vector2i(0, -1), Vector2i(0, 1), Vector2i(1, 0), Vector2i(-1, 0)])

View file

@ -199,10 +199,11 @@ lifetime = 0.4
one_shot = true
process_material = SubResource("ParticleProcessMaterial_poxpj")
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule")]
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule", "HealthProvider")]
script = ExtResource("21_8kl2e")
AnimationProvider = NodePath("../AnimationProvider")
StorageModule = NodePath("../Storage")
HealthProvider = NodePath("../DamageReceiver/Health")
[node name="DropsProvider" type="Node2D" parent="." node_paths=PackedStringArray("StorageModule")]
script = ExtResource("22_poxpj")

View file

@ -201,10 +201,11 @@ lifetime = 0.4
one_shot = true
process_material = SubResource("ParticleProcessMaterial_poxpj")
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule")]
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule", "HealthProvider")]
script = ExtResource("22_ipl8g")
AnimationProvider = NodePath("../AnimationProvider")
StorageModule = NodePath("../Storage")
HealthProvider = NodePath("../DamageReceiver/Health")
[node name="DropsProvider" type="Node2D" parent="." node_paths=PackedStringArray("StorageModule")]
script = ExtResource("23_1llhk")

View file

@ -355,10 +355,11 @@ lifetime = 0.4
one_shot = true
process_material = SubResource("ParticleProcessMaterial_poxpj")
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule")]
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule", "HealthProvider")]
script = ExtResource("22_uxv3s")
AnimationProvider = NodePath("../AnimationProvider")
StorageModule = NodePath("../Storage")
HealthProvider = NodePath("../DamageReceiver/Health")
[node name="DropsProvider" type="Node2D" parent="." node_paths=PackedStringArray("StorageModule")]
script = ExtResource("23_f8h5e")

View file

@ -200,10 +200,11 @@ lifetime = 0.4
one_shot = true
process_material = SubResource("ParticleProcessMaterial_poxpj")
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule")]
[node name="AnimationModule" type="Node2D" parent="." node_paths=PackedStringArray("AnimationProvider", "StorageModule", "HealthProvider")]
script = ExtResource("22_23wbc")
AnimationProvider = NodePath("../AnimationProvider")
StorageModule = NodePath("../Storage")
HealthProvider = NodePath("../DamageReceiver/Health")
[node name="DropsProvider" type="Node2D" parent="." node_paths=PackedStringArray("StorageModule")]
script = ExtResource("23_5aqmo")

View file

@ -27,6 +27,7 @@ process_mode = 1
y_sort_enabled = true
script = ExtResource("4_jtlua")
MapThemes = Array[Object]([ExtResource("25_7gtqx")])
ManualSeed = "18162257933587379688"
[node name="CameraController" parent="." instance=ExtResource("6_gwtv6")]

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=30 format=4 uid="uid://24wh7h2dbljf"]
[gd_scene load_steps=29 format=4 uid="uid://24wh7h2dbljf"]
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_vhsym"]
[ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="2_vhsym"]
@ -7,7 +7,6 @@
[ext_resource type="PackedScene" uid="uid://cl7s06sk106uo" path="res://Scenes/Props/VendingMachine.tscn" id="6_70a8f"]
[ext_resource type="PackedScene" uid="uid://4q82gggqax87" path="res://Scenes/Items/Cheat_Gun_Pickup.tscn" id="6_pys6w"]
[ext_resource type="PackedScene" uid="uid://djf0y08ix66fn" path="res://Scenes/Interactable/Chest.tscn" id="7_kublc"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="8_5uxd1"]
[ext_resource type="Resource" uid="uid://cltxhkrqp055v" path="res://Resources/Items/Money_Pickup.tres" id="9_5yebg"]
[ext_resource type="Resource" uid="uid://cajqlnyvlmybe" path="res://Resources/Items/IcicleRepeater_Improved.tres" id="10_6gtn1"]
[ext_resource type="Resource" uid="uid://dwwbyyy3fo4bt" path="res://Resources/Items/IcicleRepeater_Advanced.tres" id="11_0a3am"]
@ -76,7 +75,7 @@ position = Vector2(275, -100)
[node name="Chest" parent="Actors" instance=ExtResource("7_kublc")]
position = Vector2(220, -109)
LootTable = Array[ExtResource("8_5uxd1")]([ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("10_6gtn1"), ExtResource("11_0a3am"), ExtResource("12_t3lr8"), ExtResource("13_ii24s"), ExtResource("14_15ruc"), ExtResource("15_5uxd1"), ExtResource("16_iyfx3"), ExtResource("17_45mmk"), ExtResource("18_ipsj4"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("26_iyfx3")])
LootTable = [ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("10_6gtn1"), ExtResource("11_0a3am"), ExtResource("12_t3lr8"), ExtResource("13_ii24s"), ExtResource("14_15ruc"), ExtResource("15_5uxd1"), ExtResource("16_iyfx3"), ExtResource("17_45mmk"), ExtResource("18_ipsj4"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("26_iyfx3")]
[node name="Label" type="Label" parent="Actors"]
offset_left = 153.0

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=20 format=4 uid="uid://d06oxglp06qyt"]
[gd_scene load_steps=19 format=4 uid="uid://d06oxglp06qyt"]
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_oj14n"]
[ext_resource type="Resource" uid="uid://c1lxymqnucaas" path="res://Resources/RogueliteMaps/Corridor_3x2.tres" id="2_oj14n"]
@ -12,7 +12,6 @@
[ext_resource type="Resource" uid="uid://dqnvesdj0dk3v" path="res://Resources/Bullets/simple_enemy_bullet.tres" id="7_nhpte"]
[ext_resource type="Script" uid="uid://umyqgyxjiaig" path="res://Scripts/Actors/ChestMarker.cs" id="8_nhpte"]
[ext_resource type="Texture2D" uid="uid://qeh4ai8h6sw5" path="res://Sprites/Chest.png" id="9_7q6f1"]
[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="9_kbkbx"]
[ext_resource type="Script" uid="uid://bwox5lmgiijcs" path="res://Scripts/Resources/Events/ActivateEvent.cs" id="10_wffoc"]
[ext_resource type="PackedScene" uid="uid://dqr6myj0yaqvd" path="res://Scenes/Interactable/ScriptableMovementSensorLonger.tscn" id="11_wmiud"]
@ -98,11 +97,11 @@ BurstCoolDown = 0.0
[node name="MovementSensorLonger" parent="Tilemaps/Actors" instance=ExtResource("11_wmiud")]
position = Vector2(216, 119)
Events = Array[ExtResource("9_kbkbx")]([SubResource("Resource_00xb4")])
Events = [SubResource("Resource_00xb4")]
[node name="MovementSensorLonger2" parent="Tilemaps/Actors" instance=ExtResource("11_wmiud")]
position = Vector2(395, 117)
Events = Array[ExtResource("9_kbkbx")]([SubResource("Resource_00xb4")])
Events = [SubResource("Resource_00xb4")]
[node name="NavigationRegion2D" type="NavigationRegion2D" parent="."]
visible = false

View file

@ -46,7 +46,7 @@ navigation_enabled = false
metadata/_edit_lock_ = true
[node name="Props" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]]
tile_map_data = PackedByteArray("AAATAAQAAAAKAA8AAAATAAMAAAAKAA4AAAAAAAMAAAAKAA4AAAAAAAQAAAAKAA8AAAANAAEAAAAPAAAAAAANAAIAAAAPAAEAAAAOAAEAAAAQAAAAAAAOAAIAAAAQAAEAAAAPAAEAAAARAAAAAAAPAAIAAAARAAEAAAACAAEAAAAPAAAAAAACAAIAAAAPAAEAAAADAAEAAAAQAAAAAAADAAIAAAAQAAEAAAAEAAEAAAARAAAAAAAEAAIAAAARAAEAAAADAAMAAQAAAAAAAgAEAAMAAQAAAAAAAgAMAAgAAQAAAAAAAgAPAAgAAQAAAAAAAgAQAAMAAQAAAAAAAgAPAAMAAQAAAAAAAgAHAAQAAQAAAAAAAQAMAAcAAQAAAAAAAQAFAAMAAQAAAAAACQAKAAMAAQAAAAAADAAHAAMAAQAAAAAAEAA=")
tile_map_data = PackedByteArray("AAATAAQAAAAKAA8AAAATAAMAAAAKAA4AAAAAAAMAAAAKAA4AAAAAAAQAAAAKAA8AAAANAAEAAAAPAAAAAAANAAIAAAAPAAEAAAAOAAEAAAAQAAAAAAAOAAIAAAAQAAEAAAAPAAEAAAARAAAAAAAPAAIAAAARAAEAAAACAAEAAAAPAAAAAAACAAIAAAAPAAEAAAADAAEAAAAQAAAAAAADAAIAAAAQAAEAAAAEAAEAAAARAAAAAAAEAAIAAAARAAEAAAADAAMAAQAAAAAAAgAEAAMAAQAAAAAAAgAMAAgAAQAAAAAAAgAPAAgAAQAAAAAAAgAQAAMAAQAAAAAAAgAPAAMAAQAAAAAAAgAHAAQAAQAAAAAAAQAMAAcAAQAAAAAAAQAFAAMAAQAAAAAACQAKAAMAAQAAAAAADAAHAAMAAQAAAAAAEAAIAAMAAAAJAAwAAAAIAAQAAAAJAA0AAAAJAAMAAAAKAAwAAAAJAAQAAAAKAA0AAAA=")
tile_set = ExtResource("5_0c8ec")
navigation_enabled = false
metadata/_edit_lock_ = true

View file

@ -1,4 +1,5 @@
using Cirno.Scripts.Enums;
using Cirno.Scripts.Components.Actors;
using Cirno.Scripts.Enums;
using Godot;
namespace Cirno.Scripts.Components.FSM.Enemy;
@ -10,16 +11,30 @@ public partial class AnimationModule : ModuleBase<EnemyState, CharacterBody2D>
[Export] public PlayerAnimationProvider AnimationProvider { get; set; }
[Export] public EnemyStorageModule StorageModule { get; set; }
[Export] public ActorResourceProvider HealthProvider { get; set; }
public override void EnterState(EnemyState state)
{
AnimationProvider.SetAnimation(StorageModule.AimingDirection);
AnimationProvider.SetAnimation(Vector2.Zero);
if (HealthProvider is not null)
{
HealthProvider.ResourceDecreased += HealthProviderOnResourceDecreased;
}
}
private void HealthProviderOnResourceDecreased(float oldValue, float newValue, float maxValue)
{
AnimationProvider?.Blink();
}
public override void ExitState(EnemyState state)
{
AnimationProvider.SetAnimation(Vector2.Zero);
if (HealthProvider is not null)
{
HealthProvider.ResourceDecreased -= HealthProviderOnResourceDecreased;
}
}
public override void Init(IStateMachine<EnemyState, CharacterBody2D> machine)