64 lines
1.2 KiB
C#
64 lines
1.2 KiB
C#
using HurricaneVR.Framework.Core.Player;
|
|
using Sirenix.OdinInspector;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Unity.Netcode;
|
|
using UnityEngine;
|
|
using Zenject;
|
|
|
|
public class LevelManager : NetworkBehaviour
|
|
{
|
|
[SerializeField]
|
|
[ReadOnly]
|
|
[Inject]
|
|
private Level level;
|
|
|
|
[SerializeField]
|
|
[ReadOnly]
|
|
private int health = 0;
|
|
|
|
[SerializeField]
|
|
private HashSet<EnemyComponent> finishedEnemies = new HashSet<EnemyComponent>();
|
|
|
|
[Inject]
|
|
[SerializeField]
|
|
[ReadOnly]
|
|
private MusicManager musicManager;
|
|
|
|
[Inject]
|
|
[SerializeField]
|
|
[ReadOnly]
|
|
private PlayerSpawner playerSpawner;
|
|
|
|
[Inject]
|
|
[SerializeField]
|
|
[ReadOnly]
|
|
private GameManager gameManager;
|
|
|
|
private void Start()
|
|
{
|
|
health = level.health;
|
|
|
|
if (level.pauseClip != null)
|
|
{
|
|
musicManager.Play(level.pauseClip);
|
|
}
|
|
|
|
var player = gameManager.LocalPlayer;
|
|
playerSpawner.Spawn(player);
|
|
}
|
|
|
|
public void OnEnemyReachedFinish(EnemyComponent enemy)
|
|
{
|
|
if (finishedEnemies.Contains(enemy))
|
|
{
|
|
return;
|
|
}
|
|
|
|
finishedEnemies.Add(enemy);
|
|
enemy.Destroy();
|
|
health--;
|
|
}
|
|
}
|