Remove chariot
This commit is contained in:
@@ -7,7 +7,7 @@ public enum EnemyType
|
|||||||
FilthEater,
|
FilthEater,
|
||||||
Sara,
|
Sara,
|
||||||
Ballos,
|
Ballos,
|
||||||
Chariot,
|
Planter,
|
||||||
Chinthe,
|
Chinthe,
|
||||||
AmbassadorGreen,
|
AmbassadorGreen,
|
||||||
AmbassadorRed,
|
AmbassadorRed,
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ public static class EnemyTypeToEnemyConverter
|
|||||||
return InstantiateFromPath(@$"{_folderPath}/04. sara/Sara.tscn");
|
return InstantiateFromPath(@$"{_folderPath}/04. sara/Sara.tscn");
|
||||||
case EnemyType.Ballos:
|
case EnemyType.Ballos:
|
||||||
return InstantiateFromPath(@$"{_folderPath}/05. ballos/Ballos.tscn");
|
return InstantiateFromPath(@$"{_folderPath}/05. ballos/Ballos.tscn");
|
||||||
case EnemyType.Chariot:
|
case EnemyType.Planter:
|
||||||
return InstantiateFromPath(@$"{_folderPath}/06. chariot/Chariot.tscn");
|
return InstantiateFromPath(@$"{_folderPath}/06. Planter/Planter.tscn");
|
||||||
case EnemyType.Chinthe:
|
case EnemyType.Chinthe:
|
||||||
return InstantiateFromPath(@$"{_folderPath}/07. chinthe/Chinthe.tscn");
|
return InstantiateFromPath(@$"{_folderPath}/07. chinthe/Chinthe.tscn");
|
||||||
case EnemyType.AmbassadorGreen:
|
case EnemyType.AmbassadorGreen:
|
||||||
@@ -62,8 +62,8 @@ public static class EnemyTypeToEnemyConverter
|
|||||||
return EnemyType.Sara;
|
return EnemyType.Sara;
|
||||||
if (enemy is Ballos)
|
if (enemy is Ballos)
|
||||||
return EnemyType.Ballos;
|
return EnemyType.Ballos;
|
||||||
if (enemy is Chariot)
|
if (enemy is Planter)
|
||||||
return EnemyType.Chariot;
|
return EnemyType.Planter;
|
||||||
if (enemy is Chinthe)
|
if (enemy is Chinthe)
|
||||||
return EnemyType.Chinthe;
|
return EnemyType.Chinthe;
|
||||||
if (enemy is Ambassador ambassador)
|
if (enemy is Ambassador ambassador)
|
||||||
|
|||||||
@@ -1,103 +0,0 @@
|
|||||||
using Chickensoft.AutoInject;
|
|
||||||
using Chickensoft.Introspection;
|
|
||||||
using Godot;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using Zennysoft.Game.Ma;
|
|
||||||
using Zennysoft.Ma.Adapter;
|
|
||||||
|
|
||||||
[Meta(typeof(IAutoNode))]
|
|
||||||
public partial class Chariot : Enemy2D, IHavePatrolBehavior, IHaveEngagePlayerBehavior, IHaveFollowBehavior
|
|
||||||
{
|
|
||||||
public override void _Notification(int what) => this.Notify(what);
|
|
||||||
|
|
||||||
[Export] private float PrimaryAttackChance { get; set; } = 0.75f;
|
|
||||||
|
|
||||||
[Export] private float SecondaryAttackChance { get; set; } = 0.25f;
|
|
||||||
|
|
||||||
[Node] public NavigationAgent3D NavigationAgent { get; set; }
|
|
||||||
[Node] public PatrolBehavior PatrolBehavior { get; set; } = default!;
|
|
||||||
[Node] public FollowBehavior FollowBehavior { get; set; } = default!;
|
|
||||||
[Node] public EngagePlayerBehavior EngagePlayerBehavior { get; set; } = default!;
|
|
||||||
|
|
||||||
[Node] public Area3D PlayerDetector { get; set; } = default!;
|
|
||||||
|
|
||||||
public void OnReady()
|
|
||||||
{
|
|
||||||
FollowBehavior.Init(NavigationAgent);
|
|
||||||
PatrolBehavior.Init(NavigationAgent);
|
|
||||||
PatrolBehavior.HomePosition = GlobalPosition;
|
|
||||||
PatrolBehavior.OnVelocityComputed += OnChariotVelocityComputed;
|
|
||||||
FollowBehavior.OnVelocityComputed += OnChariotVelocityComputed;
|
|
||||||
EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction;
|
|
||||||
EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget;
|
|
||||||
PlayerDetector.BodyEntered += Chariot_PlayerDetected;
|
|
||||||
PlayerDetector.BodyExited += Chariot_PlayerExitArea;
|
|
||||||
((EnemyModelView)EnemyModelView).CanMove = true;
|
|
||||||
SetPhysicsProcess(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Chariot_PlayerExitArea(Node3D body)
|
|
||||||
{
|
|
||||||
EngagePlayerBehavior.Disengage();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Chariot_PlayerDetected(Node3D body)
|
|
||||||
{
|
|
||||||
if (body is not IPlayer)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!_activated)
|
|
||||||
_enemyLogic.Input(new EnemyLogic.Input.Activate());
|
|
||||||
EngagePlayerBehavior.Engage();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Idle()
|
|
||||||
{
|
|
||||||
if (!_activated)
|
|
||||||
base.Idle();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Move()
|
|
||||||
{
|
|
||||||
if (!_activated)
|
|
||||||
base.Move();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnResolved()
|
|
||||||
{
|
|
||||||
_enemyLogic.Input(new EnemyLogic.Input.Patrol());
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Activate()
|
|
||||||
{
|
|
||||||
if (!_activated)
|
|
||||||
{
|
|
||||||
((EnemyModelView)EnemyModelView).CanMove = false;
|
|
||||||
Velocity = Vector3.Zero;
|
|
||||||
EnemyModelView.PlayActivateAnimation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void _Process(double delta)
|
|
||||||
{
|
|
||||||
if (!_activated)
|
|
||||||
base._Process(delta);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void PerformAction()
|
|
||||||
{
|
|
||||||
var rng = new RandomNumberGenerator();
|
|
||||||
var options = new List<Action>() { EnemyModelView.PlayPrimaryAttackAnimation, EnemyModelView.PlaySecondaryAttackAnimation };
|
|
||||||
var selection = rng.RandWeighted([PrimaryAttackChance, SecondaryAttackChance]);
|
|
||||||
options[(int)selection].Invoke();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnChariotVelocityComputed(Vector3 safeVelocity)
|
|
||||||
{
|
|
||||||
Velocity = safeVelocity;
|
|
||||||
LookAtTarget(safeVelocity);
|
|
||||||
if (((EnemyModelView)EnemyModelView).CanMove)
|
|
||||||
MoveAndSlide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://djx5x5bhkku85
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://cd12cj1g37bn4"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://djx5x5bhkku85" path="res://src/enemy/enemy_types/06. chariot/Chariot.cs" id="1_q1q0f"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dwgq2bxolnx8l" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.tscn" id="3_q1q0f"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_ee8v4"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_uv8in"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_582pa"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_cfqmf"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_jemva"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_ave6n"]
|
|
||||||
[ext_resource type="AudioStream" uid="uid://daye7334d7rfe" path="res://src/audio/sfx/ENEMY_CHARIOT_DEATH.ogg" id="9_cfqmf"]
|
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
|
||||||
radius = 1.67281
|
|
||||||
height = 3.34563
|
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
|
|
||||||
height = 5.0
|
|
||||||
radius = 1.0
|
|
||||||
|
|
||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_lqifn"]
|
|
||||||
radius = 1.20703
|
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_582pa"]
|
|
||||||
radius = 2.34863
|
|
||||||
|
|
||||||
[node name="Chariot" type="CharacterBody3D" groups=["enemy"]]
|
|
||||||
process_mode = 1
|
|
||||||
collision_layer = 10
|
|
||||||
collision_mask = 3
|
|
||||||
axis_lock_linear_y = true
|
|
||||||
axis_lock_angular_x = true
|
|
||||||
script = ExtResource("1_q1q0f")
|
|
||||||
|
|
||||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.40414, 0)
|
|
||||||
shape = SubResource("CapsuleShape3D_cwfph")
|
|
||||||
|
|
||||||
[node name="LineOfSight" type="Area3D" parent="."]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.40414, 0)
|
|
||||||
collision_layer = 2
|
|
||||||
collision_mask = 2
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="LineOfSight"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
|
|
||||||
shape = SubResource("CylinderShape3D_jbgmx")
|
|
||||||
|
|
||||||
[node name="Raycast" type="RayCast3D" parent="LineOfSight"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, 0)
|
|
||||||
target_position = Vector3(0, 0, 3)
|
|
||||||
|
|
||||||
[node name="Collision" type="Area3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.40414, 0)
|
|
||||||
collision_layer = 2048
|
|
||||||
collision_mask = 0
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision"]
|
|
||||||
shape = SubResource("SphereShape3D_lqifn")
|
|
||||||
|
|
||||||
[node name="EnemyModelView" parent="." instance=ExtResource("3_q1q0f")]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
transform = Transform3D(0.999848, 0, 0.0174524, 0, 1, 0, -0.0174524, 0, 0.999848, 0, 0.0547004, 0)
|
|
||||||
|
|
||||||
[node name="PlayerDetector" type="Area3D" parent="."]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.40414, 0)
|
|
||||||
collision_layer = 0
|
|
||||||
collision_mask = 2
|
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetector"]
|
|
||||||
shape = SubResource("CylinderShape3D_582pa")
|
|
||||||
|
|
||||||
[node name="Components" type="Node3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.40414, 0)
|
|
||||||
|
|
||||||
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_ee8v4")]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
|
|
||||||
[node name="FollowBehavior" parent="Components" instance=ExtResource("5_uv8in")]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
_followSpeed = 150.0
|
|
||||||
|
|
||||||
[node name="EngagePlayerBehavior" parent="Components" instance=ExtResource("6_cfqmf")]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
_acquireTargetTime = 2.0
|
|
||||||
|
|
||||||
[node name="NavigationAgent" type="NavigationAgent3D" parent="Components"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
avoidance_enabled = true
|
|
||||||
height = 3.0
|
|
||||||
radius = 1.0
|
|
||||||
|
|
||||||
[node name="HitSounds" type="Node3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.40414, 0)
|
|
||||||
|
|
||||||
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
stream = ExtResource("6_582pa")
|
|
||||||
bus = &"SFX"
|
|
||||||
|
|
||||||
[node name="HitSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
stream = ExtResource("7_jemva")
|
|
||||||
bus = &"SFX"
|
|
||||||
|
|
||||||
[node name="MorphSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
stream = ExtResource("8_ave6n")
|
|
||||||
bus = &"SFX"
|
|
||||||
|
|
||||||
[node name="DieSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
stream = ExtResource("9_cfqmf")
|
|
||||||
bus = &"SFX"
|
|
||||||
|
|
||||||
[node name="AggroSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
bus = &"SFX"
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
using Chickensoft.AutoInject;
|
|
||||||
using Chickensoft.Introspection;
|
|
||||||
using Godot;
|
|
||||||
|
|
||||||
namespace Zennysoft.Game.Ma;
|
|
||||||
|
|
||||||
[Meta(typeof(IAutoNode))]
|
|
||||||
public partial class ChariotModelView : EnemyModelView2D, IEnemyModelView
|
|
||||||
{
|
|
||||||
public override void _Notification(int what) => this.Notify(what);
|
|
||||||
|
|
||||||
[Node] AnimationTree ScrollAnimationTree { get; set; } = default!;
|
|
||||||
|
|
||||||
|
|
||||||
public override void PlayActivateAnimation()
|
|
||||||
{
|
|
||||||
_stateMachine.Travel(_activateName);
|
|
||||||
var scrollStateMachine = (AnimationNodeStateMachinePlayback)ScrollAnimationTree.Get(_parametersPlayback);
|
|
||||||
scrollStateMachine.Travel(_activateName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
uid://ckxqmb4tu4rml
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -23,8 +23,6 @@ public partial class DungeonFloorNode : FloorNode
|
|||||||
[Export]
|
[Export]
|
||||||
public float Ballos { get; set; }
|
public float Ballos { get; set; }
|
||||||
[Export]
|
[Export]
|
||||||
public float Chariot { get; set; }
|
|
||||||
[Export]
|
|
||||||
public float Chinthe { get; set; }
|
public float Chinthe { get; set; }
|
||||||
[Export]
|
[Export]
|
||||||
public float GreenAmbassador { get; set; }
|
public float GreenAmbassador { get; set; }
|
||||||
|
|||||||
@@ -20,9 +20,9 @@ public partial class DungeonFloor : Node3D, IDungeonFloor
|
|||||||
|
|
||||||
public void InitializeDungeon()
|
public void InitializeDungeon()
|
||||||
{
|
{
|
||||||
Rooms = [];
|
Rooms = [];
|
||||||
Rooms = FindAllDungeonRooms([.. GetChildren()], Rooms);
|
Rooms = FindAllDungeonRooms([.. GetChildren()], Rooms);
|
||||||
_playerSpawnPoint = RandomizePlayerSpawnPoint();
|
_playerSpawnPoint = RandomizePlayerSpawnPoint();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void FadeOutAudio()
|
public void FadeOutAudio()
|
||||||
@@ -32,27 +32,26 @@ public partial class DungeonFloor : Node3D, IDungeonFloor
|
|||||||
|
|
||||||
public void SpawnEnemies(DungeonFloorNode floorNode)
|
public void SpawnEnemies(DungeonFloorNode floorNode)
|
||||||
{
|
{
|
||||||
var enemyOdds = new Godot.Collections.Dictionary<EnemyType, float>
|
var enemyOdds = new Godot.Collections.Dictionary<EnemyType, float>
|
||||||
{
|
{
|
||||||
{ EnemyType.Sproingy, floorNode.Sproingy },
|
{ EnemyType.Sproingy, floorNode.Sproingy },
|
||||||
{ EnemyType.Michael, floorNode.Michael },
|
{ EnemyType.Michael, floorNode.Michael },
|
||||||
{ EnemyType.FilthEater, floorNode.FilthEater },
|
{ EnemyType.FilthEater, floorNode.FilthEater },
|
||||||
{ EnemyType.Sara, floorNode.Sara },
|
{ EnemyType.Sara, floorNode.Sara },
|
||||||
{ EnemyType.Ballos, floorNode.Ballos },
|
{ EnemyType.Ballos, floorNode.Ballos },
|
||||||
{ EnemyType.Chariot, floorNode.Chariot },
|
{ EnemyType.Chinthe, floorNode.Chinthe },
|
||||||
{ EnemyType.Chinthe, floorNode.Chinthe },
|
{ EnemyType.AmbassadorGreen, floorNode.GreenAmbassador },
|
||||||
{ EnemyType.AmbassadorGreen, floorNode.GreenAmbassador },
|
{ EnemyType.AmbassadorRed, floorNode.RedAmbassador },
|
||||||
{ EnemyType.AmbassadorRed, floorNode.RedAmbassador },
|
{ EnemyType.AmbassadorSteel, floorNode.SteelAmbassador },
|
||||||
{ EnemyType.AmbassadorSteel, floorNode.SteelAmbassador },
|
{ EnemyType.AgniDemon, floorNode.AgniDemon },
|
||||||
{ EnemyType.AgniDemon, floorNode.AgniDemon },
|
{ EnemyType.AqueousDemon, floorNode.AqueosDemon },
|
||||||
{ EnemyType.AqueousDemon, floorNode.AqueosDemon },
|
{ EnemyType.Palan, floorNode.Palan },
|
||||||
{ EnemyType.Palan, floorNode.Palan },
|
{ EnemyType.ShieldOfHeaven, floorNode.ShieldOfHeaven },
|
||||||
{ EnemyType.ShieldOfHeaven, floorNode.ShieldOfHeaven },
|
{ EnemyType.GoldSproingy, floorNode.GoldSproingy },
|
||||||
{ EnemyType.GoldSproingy, floorNode.GoldSproingy },
|
};
|
||||||
};
|
var monsterRooms = Rooms.OfType<MonsterRoom>();
|
||||||
var monsterRooms = Rooms.OfType<MonsterRoom>();
|
foreach (var room in monsterRooms)
|
||||||
foreach (var room in monsterRooms)
|
room.SpawnEnemies(enemyOdds);
|
||||||
room.SpawnEnemies(enemyOdds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public (Vector3 Rotation, Vector3 Position) GetPlayerSpawnPoint() { return (_playerSpawnPoint.Rotation, new Vector3(_playerSpawnPoint.GlobalPosition.X, 0, _playerSpawnPoint.GlobalPosition.Z)); }
|
public (Vector3 Rotation, Vector3 Position) GetPlayerSpawnPoint() { return (_playerSpawnPoint.Rotation, new Vector3(_playerSpawnPoint.GlobalPosition.X, 0, _playerSpawnPoint.GlobalPosition.Z)); }
|
||||||
@@ -60,25 +59,25 @@ public partial class DungeonFloor : Node3D, IDungeonFloor
|
|||||||
|
|
||||||
private Marker3D RandomizePlayerSpawnPoint()
|
private Marker3D RandomizePlayerSpawnPoint()
|
||||||
{
|
{
|
||||||
var randomSpawnLocations = Rooms
|
var randomSpawnLocations = Rooms
|
||||||
.OfType<MonsterRoom>()
|
.OfType<MonsterRoom>()
|
||||||
.Select(x => x.PlayerSpawn);
|
.Select(x => x.PlayerSpawn);
|
||||||
var godotCollection = new Godot.Collections.Array<Marker3D>(randomSpawnLocations);
|
var godotCollection = new Godot.Collections.Array<Marker3D>(randomSpawnLocations);
|
||||||
var result = godotCollection.PickRandom();
|
var result = godotCollection.PickRandom();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ImmutableList<IDungeonRoom> FindAllDungeonRooms(List<Node> nodesToSearch, ImmutableList<IDungeonRoom> roomsFound)
|
private static ImmutableList<IDungeonRoom> FindAllDungeonRooms(List<Node> nodesToSearch, ImmutableList<IDungeonRoom> roomsFound)
|
||||||
{
|
{
|
||||||
if (nodesToSearch.Count == 0)
|
if (nodesToSearch.Count == 0)
|
||||||
return roomsFound;
|
return roomsFound;
|
||||||
|
|
||||||
foreach (var node in nodesToSearch)
|
foreach (var node in nodesToSearch)
|
||||||
{
|
{
|
||||||
if (node is IDungeonRoom dungeonRoom)
|
if (node is IDungeonRoom dungeonRoom)
|
||||||
roomsFound = roomsFound.Add(dungeonRoom);
|
roomsFound = roomsFound.Add(dungeonRoom);
|
||||||
}
|
}
|
||||||
|
|
||||||
return FindAllDungeonRooms([.. nodesToSearch.SelectMany(x => x.GetChildren())], roomsFound);
|
return FindAllDungeonRooms([.. nodesToSearch.SelectMany(x => x.GetChildren())], roomsFound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ public partial class PauseDebugMenu : Control, IDebugMenu
|
|||||||
_enemyFilePath + "/03. filth_eater/FilthEater.tscn",
|
_enemyFilePath + "/03. filth_eater/FilthEater.tscn",
|
||||||
_enemyFilePath + "/04. sara/Sara.tscn",
|
_enemyFilePath + "/04. sara/Sara.tscn",
|
||||||
_enemyFilePath + "/05. ballos/Ballos.tscn",
|
_enemyFilePath + "/05. ballos/Ballos.tscn",
|
||||||
_enemyFilePath + "/06. chariot/Chariot.tscn",
|
|
||||||
_enemyFilePath + "/07. chinthe/Chinthe.tscn",
|
_enemyFilePath + "/07. chinthe/Chinthe.tscn",
|
||||||
_enemyFilePath + "/08a. Ambassador/Ambassador.tscn",
|
_enemyFilePath + "/08a. Ambassador/Ambassador.tscn",
|
||||||
_enemyFilePath + "/08b. Ambassador (red)/AmbassadorRed.tscn",
|
_enemyFilePath + "/08b. Ambassador (red)/AmbassadorRed.tscn",
|
||||||
|
|||||||
Reference in New Issue
Block a user