Refactor
This commit is contained in:
@@ -7,96 +7,49 @@ public partial class CharacterSelectUpdateService : Control
|
||||
{
|
||||
base._Ready();
|
||||
}
|
||||
public void OnCapricornP1Selected()
|
||||
public void OnCapricornSelected(Player player)
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P1").GetChildren().OfType<TextureRect>();
|
||||
var allPortraits = GetNode<Control>($"P{player.PlayerNumber}").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P1/CapBG");
|
||||
var node = GetNode<TextureRect>($"P{player.PlayerNumber}/CapBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnPiscesP1Selected()
|
||||
public void OnPiscesSelected(Player player)
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P1").GetChildren().OfType<TextureRect>();
|
||||
var allPortraits = GetNode<Control>($"P{player.PlayerNumber}").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P1/PiscesBG");
|
||||
var node = GetNode<TextureRect>($"P{player.PlayerNumber}/PiscesBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnSagP1Selected()
|
||||
public void OnSagittariusSelected(Player player)
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P1").GetChildren().OfType<TextureRect>();
|
||||
var allPortraits = GetNode<Control>($"P{player.PlayerNumber}").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P1/SagBG");
|
||||
var node = GetNode<TextureRect>($"P{player.PlayerNumber}/SagBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnScorpioP1Selected()
|
||||
public void OnScorpioSelected(Player player)
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P1").GetChildren().OfType<TextureRect>();
|
||||
var allPortraits = GetNode<Control>($"P{player.PlayerNumber}").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P1/ScorpioBG");
|
||||
var node = GetNode<TextureRect>($"P{player.PlayerNumber}/ScorpioBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnCapricornP2Selected()
|
||||
public void OnPlayerGameOver(Player player)
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P2").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P2/CapBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnPiscesP2Selected()
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P2").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P2/PiscesBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnSagP2Selected()
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P2").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P2/SagBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnScorpioP2Selected()
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P2").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
|
||||
var node = GetNode<TextureRect>("P2/ScorpioBG");
|
||||
node.Show();
|
||||
}
|
||||
|
||||
public void OnP1GameOver()
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P1").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
}
|
||||
|
||||
public void OnP2GameOver()
|
||||
{
|
||||
var allPortraits = GetNode<Control>("P2").GetChildren().OfType<TextureRect>();
|
||||
var allPortraits = GetNode<Control>($"P{player.PlayerNumber}").GetChildren().OfType<TextureRect>();
|
||||
foreach (var bg in allPortraits)
|
||||
bg.Hide();
|
||||
}
|
||||
|
||||
26
UI/GameOverService.cs
Normal file
26
UI/GameOverService.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Godot;
|
||||
|
||||
public partial class GameOverService : Node
|
||||
{
|
||||
private GameManager _gameManager;
|
||||
|
||||
public override void _EnterTree()
|
||||
{
|
||||
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
|
||||
}
|
||||
|
||||
public void OnGameOver(Player[] players)
|
||||
{
|
||||
GetNode<Control>("GameOver").Show();
|
||||
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
|
||||
bgmPlayer.SetBGMFromFilepath("Audio/BGM/GameOverTheme.wav");
|
||||
bgmPlayer.PlayBGM();
|
||||
foreach (var player in players)
|
||||
{
|
||||
if (Input.IsActionJustPressed(player.PlayerInput.Fire()))
|
||||
{
|
||||
GetNode<Control>("GameOver").Hide(); GetTree().ReloadCurrentScene();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
124
UI/StageGUI.cs
124
UI/StageGUI.cs
@@ -4,38 +4,28 @@ using System.Linq;
|
||||
public partial class StageGUI : Control
|
||||
{
|
||||
[Signal]
|
||||
public delegate void OnCharacterSelectionMadeEventHandler(PlayerManager player);
|
||||
public delegate void OnCharacterSelectionMadeEventHandler(Character player);
|
||||
[Signal]
|
||||
public delegate void CapricornP1SelectedEventHandler();
|
||||
public delegate void CapricornSelectedEventHandler(Player player);
|
||||
[Signal]
|
||||
public delegate void CapricornP2SelectedEventHandler();
|
||||
public delegate void PiscesSelectedEventHandler(Player player);
|
||||
[Signal]
|
||||
public delegate void PiscesP1SelectedEventHandler();
|
||||
public delegate void SagittariusSelectedEventHandler(Player player);
|
||||
[Signal]
|
||||
public delegate void PiscesP2SelectedEventHandler();
|
||||
public delegate void ScorpioSelectedEventHandler(Player player);
|
||||
[Signal]
|
||||
public delegate void SagP1SelectedEventHandler();
|
||||
[Signal]
|
||||
public delegate void SagP2SelectedEventHandler();
|
||||
[Signal]
|
||||
public delegate void ScorpioP1SelectedEventHandler();
|
||||
[Signal]
|
||||
public delegate void ScorpioP2SelectedEventHandler();
|
||||
[Signal]
|
||||
public delegate void OnP1GameOverEventHandler();
|
||||
[Signal]
|
||||
public delegate void OnP2GameOverEventHandler();
|
||||
public delegate void OnPlayerGameOverEventHandler(Player player);
|
||||
[Signal]
|
||||
public delegate void OnGameOverEventHandler();
|
||||
|
||||
private GameManager _gameManager;
|
||||
|
||||
public override void _Ready()
|
||||
public override void _EnterTree()
|
||||
{
|
||||
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
|
||||
}
|
||||
|
||||
public void OnCharacterSelect(PlayerManager player)
|
||||
public void OnCharacterSelect(Player player)
|
||||
{
|
||||
if (player.GameOver)
|
||||
return;
|
||||
@@ -46,109 +36,59 @@ public partial class StageGUI : Control
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (_gameManager.Players.ElementAt(0).IsSelectingCharacter)
|
||||
var playersSelecting = _gameManager.Players.Where(x => x.IsSelectingCharacter);
|
||||
foreach (var player in playersSelecting)
|
||||
{
|
||||
if (Input.IsActionJustPressed("p1_right"))
|
||||
if (Input.IsActionJustPressed(player.PlayerInput.Right()))
|
||||
{
|
||||
_gameManager.SetToNextCharacter(_gameManager.Players.ElementAt(0));
|
||||
ChangeBG(_gameManager.Players.ElementAt(0));
|
||||
_gameManager.SetToNextCharacter(player);
|
||||
ChangeBG(player);
|
||||
}
|
||||
if (Input.IsActionJustPressed("p1_left"))
|
||||
if (Input.IsActionJustPressed(player.PlayerInput.Left()))
|
||||
{
|
||||
_gameManager.SetToPreviousCharacter(_gameManager.Players.ElementAt(0));
|
||||
ChangeBG(_gameManager.Players.ElementAt(0));
|
||||
_gameManager.SetToPreviousCharacter(player);
|
||||
ChangeBG(player);
|
||||
}
|
||||
|
||||
if (Input.IsActionJustPressed("p1_fire"))
|
||||
if (Input.IsActionJustPressed(player.PlayerInput.Fire()))
|
||||
{
|
||||
GD.Print("Selected character");
|
||||
_gameManager.Players.ElementAt(0).IsSelectingCharacter = false;
|
||||
EmitSignal(SignalName.OnCharacterSelectionMade, _gameManager.Players.ElementAt(0));
|
||||
player.IsSelectingCharacter = false;
|
||||
EmitSignal(SignalName.OnCharacterSelectionMade, player);
|
||||
GetTree().Paused = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (_gameManager.Players.Count() == 2 && _gameManager.Players.ElementAt(0).IsSelectingCharacter)
|
||||
foreach (var player in _gameManager.Players)
|
||||
{
|
||||
if (Input.IsActionJustPressed("p2_right"))
|
||||
{
|
||||
_gameManager.SetToNextCharacter(_gameManager.Players.ElementAt(1));
|
||||
ChangeBG(_gameManager.Players.ElementAt(1));
|
||||
}
|
||||
if (Input.IsActionJustPressed("p2_left"))
|
||||
{
|
||||
_gameManager.SetToPreviousCharacter(_gameManager.Players.ElementAt(1));
|
||||
ChangeBG(_gameManager.Players.ElementAt(1));
|
||||
}
|
||||
|
||||
if (Input.IsActionJustPressed("p2_fire"))
|
||||
{
|
||||
GD.Print("Selected character");
|
||||
_gameManager.Players.ElementAt(1).IsSelectingCharacter = false;
|
||||
EmitSignal(SignalName.OnCharacterSelectionMade, _gameManager.Players.ElementAt(1));
|
||||
GetTree().Paused = false;
|
||||
}
|
||||
if (player.GameOver)
|
||||
EmitSignal(SignalName.OnPlayerGameOver, player);
|
||||
}
|
||||
|
||||
if (_gameManager.Players.ElementAt(0).GameOver)
|
||||
EmitSignal(SignalName.OnP1GameOver);
|
||||
if (_gameManager.Players.Count() == 2 && _gameManager.Players.ElementAt(0).GameOver)
|
||||
EmitSignal(SignalName.OnP1GameOver);
|
||||
|
||||
if (_gameManager.Players.All(x => x.GameOver))
|
||||
{
|
||||
EmitSignal(SignalName.OnGameOver);
|
||||
GetNode<Control>("GameOver").Show();
|
||||
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
|
||||
bgmPlayer.SetBGMFromFilepath("Audio/BGM/GameOverTheme.wav");
|
||||
bgmPlayer.PlayBGM();
|
||||
}
|
||||
}
|
||||
|
||||
private void ChangeBG(PlayerManager player)
|
||||
private void ChangeBG(Player player)
|
||||
{
|
||||
var name = player.CharactersLeftOnStage.ElementAt(player._characterIndex).Name;
|
||||
var name = player.CharactersLeftOnStage.ElementAt(player.CharacterIndex).Name;
|
||||
GD.Print(name);
|
||||
switch (name)
|
||||
{
|
||||
case "CapricornP1":
|
||||
EmitSignal(SignalName.CapricornP1Selected);
|
||||
case "Capricorn":
|
||||
EmitSignal(SignalName.CapricornSelected, player);
|
||||
break;
|
||||
case "CapricornP2":
|
||||
EmitSignal(SignalName.CapricornP2Selected);
|
||||
case "Scorpio":
|
||||
EmitSignal(SignalName.ScorpioSelected, player);
|
||||
break;
|
||||
case "ScorpioP1":
|
||||
EmitSignal(SignalName.ScorpioP1Selected);
|
||||
case "Pisces":
|
||||
EmitSignal(SignalName.PiscesSelected, player);
|
||||
break;
|
||||
case "ScorpioP2":
|
||||
EmitSignal(SignalName.ScorpioP2Selected);
|
||||
break;
|
||||
case "PiscesP1":
|
||||
EmitSignal(SignalName.PiscesP1Selected);
|
||||
break;
|
||||
case "PiscesP2":
|
||||
EmitSignal(SignalName.PiscesP2Selected);
|
||||
break;
|
||||
case "MegamiP1":
|
||||
EmitSignal(SignalName.SagP1Selected);
|
||||
break;
|
||||
case "MegamiP2":
|
||||
EmitSignal(SignalName.SagP2Selected);
|
||||
break;
|
||||
default:
|
||||
case "Sagittarius":
|
||||
EmitSignal(SignalName.SagittariusSelected, player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnFirstPlayerCharacterSelect()
|
||||
{
|
||||
var player = _gameManager.Players.ElementAt(0);
|
||||
OnCharacterSelect(player);
|
||||
}
|
||||
|
||||
private void OnSecondPlayerCharacterSelect()
|
||||
{
|
||||
var player = _gameManager.Players.ElementAt(1);
|
||||
OnCharacterSelect(player);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,13 +202,8 @@ offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
texture = ExtResource("8_o0pnh")
|
||||
|
||||
[connection signal="CapricornP1Selected" from="." to="CharacterSelect" method="OnCapricornP1Selected"]
|
||||
[connection signal="CapricornP2Selected" from="." to="CharacterSelect" method="OnCapricornP2Selected"]
|
||||
[connection signal="OnP1GameOver" from="." to="CharacterSelect" method="OnP1GameOver"]
|
||||
[connection signal="OnP2GameOver" from="." to="CharacterSelect" method="OnP2GameOver"]
|
||||
[connection signal="PiscesP1Selected" from="." to="CharacterSelect" method="OnPiscesP1Selected"]
|
||||
[connection signal="PiscesP2Selected" from="." to="CharacterSelect" method="OnPiscesP2Selected"]
|
||||
[connection signal="SagP1Selected" from="." to="CharacterSelect" method="OnSagP1Selected"]
|
||||
[connection signal="SagP2Selected" from="." to="CharacterSelect" method="OnSagP2Selected"]
|
||||
[connection signal="ScorpioP1Selected" from="." to="CharacterSelect" method="OnScorpioP1Selected"]
|
||||
[connection signal="ScorpioP2Selected" from="." to="CharacterSelect" method="OnScorpioP2Selected"]
|
||||
[connection signal="CapricornSelected" from="." to="CharacterSelect" method="OnCapricornSelected"]
|
||||
[connection signal="OnPlayerGameOver" from="." to="CharacterSelect" method="OnPlayerGameOver"]
|
||||
[connection signal="PiscesSelected" from="." to="CharacterSelect" method="OnPiscesSelected"]
|
||||
[connection signal="SagittariusSelected" from="." to="CharacterSelect" method="OnSagittariusSelected"]
|
||||
[connection signal="ScorpioSelected" from="." to="CharacterSelect" method="OnScorpioSelected"]
|
||||
|
||||
Reference in New Issue
Block a user