Beeg checkin

This commit is contained in:
2023-09-06 03:49:16 -07:00
parent f180d4cacd
commit f8cca640a6
320 changed files with 2751 additions and 26682 deletions

154
UI/StageGUI.cs Normal file
View File

@@ -0,0 +1,154 @@
using Godot;
using System.Linq;
public partial class StageGUI : Control
{
[Signal]
public delegate void OnCharacterSelectionMadeEventHandler(PlayerManager player);
[Signal]
public delegate void CapricornP1SelectedEventHandler();
[Signal]
public delegate void CapricornP2SelectedEventHandler();
[Signal]
public delegate void PiscesP1SelectedEventHandler();
[Signal]
public delegate void PiscesP2SelectedEventHandler();
[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();
[Signal]
public delegate void OnGameOverEventHandler();
private GameManager _gameManager;
public override void _Ready()
{
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
}
public void OnCharacterSelect(PlayerManager player)
{
if (player.GameOver)
return;
player.IsSelectingCharacter = true;
ChangeBG(player);
}
public override void _Process(double delta)
{
if (_gameManager.Players.ElementAt(0).IsSelectingCharacter)
{
if (Input.IsActionJustPressed("p1_right"))
{
_gameManager.SetToNextCharacter(_gameManager.Players.ElementAt(0));
ChangeBG(_gameManager.Players.ElementAt(0));
}
if (Input.IsActionJustPressed("p1_left"))
{
_gameManager.SetToPreviousCharacter(_gameManager.Players.ElementAt(0));
ChangeBG(_gameManager.Players.ElementAt(0));
}
if (Input.IsActionJustPressed("p1_fire"))
{
GD.Print("Selected character");
_gameManager.Players.ElementAt(0).IsSelectingCharacter = false;
EmitSignal(SignalName.OnCharacterSelectionMade, _gameManager.Players.ElementAt(0));
GetTree().Paused = false;
}
}
if (_gameManager.Players.Count() == 2 && _gameManager.Players.ElementAt(0).IsSelectingCharacter)
{
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 (_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)
{
var name = player.CharactersLeftOnStage.ElementAt(player._characterIndex).Name;
GD.Print(name);
switch (name)
{
case "CapricornP1":
EmitSignal(SignalName.CapricornP1Selected);
break;
case "CapricornP2":
EmitSignal(SignalName.CapricornP2Selected);
break;
case "ScorpioP1":
EmitSignal(SignalName.ScorpioP1Selected);
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:
break;
}
}
private void OnFirstPlayerCharacterSelect()
{
var player = _gameManager.Players.ElementAt(0);
OnCharacterSelect(player);
}
private void OnSecondPlayerCharacterSelect()
{
var player = _gameManager.Players.ElementAt(1);
OnCharacterSelect(player);
}
}