End to end kind of works

This commit is contained in:
2023-09-04 16:40:14 -07:00
parent b315a90720
commit ad48e723d5
2 changed files with 26 additions and 15 deletions

View File

@@ -36,9 +36,19 @@ public partial class GameManager : Node
public void OnAllEnemiesDefeated()
{
GD.Print("All enemies defeated");
P1CharactersOut.AddRange(Players.ElementAt(0).CharactersLeftOnStage);
if (Players.Count() == 2)
P2CharactersOut.AddRange(Players.ElementAt(1).CharactersLeftOnStage);
//var remainingCharacters = Players.ElementAt(0).CharactersLeftOnStage;
//foreach (var player in remainingCharacters)
// RemoveCharacterAndAddToExit((Character1)player);
//if (Players.Count() == 2)
//{
// var remainingPlayers2 = Players.ElementAt(1).CharactersLeftOnStage;
// foreach (var player in remainingPlayers2)
// RemoveCharacterAndAddToExit((Character2)player);
//}
OnLevelClear();
}
@@ -69,26 +79,24 @@ public partial class GameManager : Node
GD.Print("Instancing...");
var names = player.CharactersLeftOnStage.Select(x => x.Name).ToArray();
GD.Print(names);
var selectedCharacter = player.CharactersLeftOnStage[player._characterIndex];
player.SelectedCharacter = selectedCharacter;
GetTree().Root.AddChild(player.SelectedCharacter);
player.SpawnPoint.SetPlayerPosition(player.SelectedCharacter);
}
public void RemoveCharacter(Player player)
{
player.CharactersLeftOnStage.Remove(player.CharactersLeftOnStage.ElementAt(player._characterIndex));
player.SelectedCharacter?.QueueFree();
player._characterIndex = 0;
if (player.CharactersLeftOnStage.Any())
EmitSignal(SignalName.ReselectCharacter, player);
{
var selectedCharacter = player.CharactersLeftOnStage[player._characterIndex];
player.SelectedCharacter = selectedCharacter;
GetTree().Root.AddChild(player.SelectedCharacter);
player.SpawnPoint.SetPlayerPosition(player.SelectedCharacter);
}
}
public void RemoveCharacterAndAddToExit(Character1 character)
{
P1CharactersOut.Add(character);
Players.ElementAt(0).CharactersLeftOnStage.Remove(character);
GetTree().Root.RemoveChild(character);
GD.Print(Players.ElementAt(0).CharactersLeftOnStage.Select(x => x.Name).ToArray());
Players.ElementAt(0)._characterIndex = 0;
if (Players.ElementAt(0).CharactersLeftOnStage.Any())
EmitSignal(SignalName.ReselectCharacter, Players.ElementAt(0));
@@ -98,7 +106,9 @@ public partial class GameManager : Node
{
P2CharactersOut.Add(character);
Players.ElementAt(1).CharactersLeftOnStage.Remove(character);
GetTree().Root.RemoveChild(character);
Players.ElementAt(1)._characterIndex = 0;
if (Players.ElementAt(1).CharactersLeftOnStage.Any())
EmitSignal(SignalName.ReselectCharacter, Players.ElementAt(1));

View File

@@ -28,6 +28,7 @@ public partial class Level : Node3D
public void OnEnemyDefeated(Node3D enemyDefeated)
{
GD.Print("On enemy defeated");
_enemies.Remove(enemyDefeated);
if (!_enemies.Any())
_gameManager.OnAllEnemiesDefeated();