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

View File

@@ -0,0 +1,32 @@
using Godot;
using System.Linq;
public partial class AreaExit : Node3D
{
[Export]
private int _levelIndex;
private GameManager _gameManager;
public override void _Ready()
{
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
}
private void OnExitEntered(Node3D node)
{
if (node is Controls)
{
if (node.GetType() == typeof(P1Controls) || node.GetType() == typeof(CapricornP1Controls))
_gameManager.RemoveCharacterAndAddToExit((P1Controls)node);
if (node.GetType() == typeof(P2Controls) || node.GetType() == typeof(CapricornP2Controls))
_gameManager.RemoveCharacterAndAddToExit((P2Controls)node);
GD.Print("Exit reached");
if (!_gameManager.Players.Any(x => x.CharactersLeftOnStage.Any()))
_gameManager.OnLevelClear();
}
}
}

View File

@@ -0,0 +1,13 @@
using Godot;
public partial class FinalLevel : Node3D
{
public override void _Ready()
{
var finalBossGUI = GetTree().GetFirstNodeInGroup("BossGUI") as Control;
finalBossGUI.Show();
var bgmPlayer = GetTree().Root.GetNode<BGMPlayer>("BgmPlayer");
bgmPlayer.SetBGMFromFilepath("Audio/BGM/BossTheme.wav");
bgmPlayer.PlayBGM();
}
}

26
Levels/Scripts/Level.cs Normal file
View File

@@ -0,0 +1,26 @@
using Godot;
using System.Collections.Generic;
using System.Linq;
public partial class Level : Node3D
{
private List<BasicEnemy> _enemies;
private GameManager _gameManager;
public override void _Ready()
{
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
_enemies = GetNode("Enemies").GetChildren().OfType<BasicEnemy>().ToList();
}
public void OnEnemyDefeated(BasicEnemy enemy)
{
if (_enemies.Contains(enemy))
{
GD.Print("On enemy defeated " + enemy.Name);
_enemies.Remove(enemy);
if (!_enemies.Any())
_gameManager.OnAllEnemiesDefeated();
}
}
}

23
Levels/Scripts/Level3.cs Normal file
View File

@@ -0,0 +1,23 @@
using Godot;
public partial class Level3 : Level
{
private int _numberOfHits = 3;
private MeshInstance3D _door;
public override void _Ready()
{
base._Ready();
_door = GetNode<MeshInstance3D>("Door");
}
private void OnDoorHit(Node3D node)
{
_numberOfHits--;
GD.Print(_numberOfHits);
if (_numberOfHits == 0)
{
_door.QueueFree();
}
}
}