Fix various issues
This commit is contained in:
@@ -61,15 +61,16 @@ public partial class GameManager : Node
|
||||
|
||||
public void OnCharacterSelected(Player player)
|
||||
{
|
||||
player.SelectedCharacter = null;
|
||||
var sfxPlayer = GetTree().Root.GetNode<AudioStreamPlayer>("Main/SFXPlayer");
|
||||
var audioStream = ResourceLoader.Load<AudioStream>("Audio/SFX/Select.wav");
|
||||
sfxPlayer.Stream = audioStream;
|
||||
sfxPlayer.Play();
|
||||
GD.Print(player.Name);
|
||||
if (player.CharactersLeftOnStage.Any())
|
||||
{
|
||||
player.SelectedCharacter = player.CharactersLeftOnStage[player.CharacterIndex];
|
||||
var character = player.CharactersLeftOnStage[player.CharacterIndex];
|
||||
var instance = (Character)character.Instantiate();
|
||||
instance.Initialize(player);
|
||||
player.SelectedCharacter = instance;
|
||||
player.SpawnPoint.SetPlayerPosition(player.SelectedCharacter);
|
||||
GetTree().Root.AddChild(player.SelectedCharacter);
|
||||
}
|
||||
@@ -79,12 +80,10 @@ public partial class GameManager : Node
|
||||
{
|
||||
ResetPlayerPosition(player);
|
||||
|
||||
player.CharactersLeftOnStage.Remove(player.SelectedCharacter);
|
||||
player.CharactersLeftOnStage.RemoveAt(player.CharacterIndex);
|
||||
if (player.SelectedCharacter is not null)
|
||||
GetTree().Root.RemoveChild(player.SelectedCharacter);
|
||||
|
||||
GD.Print(player.CharactersLeftOnStage.Select(x => x.Name).ToArray());
|
||||
|
||||
player.CharacterIndex = 0;
|
||||
if (player.CharactersLeftOnStage.Any())
|
||||
EmitSignal(SignalName.ReselectCharacter, player);
|
||||
@@ -99,7 +98,7 @@ public partial class GameManager : Node
|
||||
public void RemoveCharacterAndAddToExit(Player player)
|
||||
{
|
||||
ResetPlayerPosition(player);
|
||||
player.CharactersExited.Add(player.SelectedCharacter);
|
||||
player.CharactersExited.Add(player.CharactersLeftOnStage.ElementAt(player.CharacterIndex));
|
||||
RemoveCharacter(player);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user