Beeg checkin
This commit is contained in:
32
Levels/Scripts/AreaExit.cs
Normal file
32
Levels/Scripts/AreaExit.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
13
Levels/Scripts/FinalLevel.cs
Normal file
13
Levels/Scripts/FinalLevel.cs
Normal 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
26
Levels/Scripts/Level.cs
Normal 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
23
Levels/Scripts/Level3.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user