Pedro Gomes 2dce047470 New zone, New Character(WIP), refactor enemy spawning continued
- Vamp's Den playable zone (dev level design), pls send help artists
- Vampire playable character class (WIP)
- Bugfixing & changes to enemy spawning system
2024-07-28 19:00:32 +01:00

47 lines
1.8 KiB
C#

using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameScene : MonoBehaviour
{
[SerializeField] private ZoneData zone;
[SerializeField] private GameEvent_ZoneData onGameSceneLoaded;
[SerializeField] private GameEvent_RiftSettings onSpawnRiftRequest;
[SerializeField] private List<Transform> spawnPoints = new List<Transform>();
RiftSettings riftSettings = new RiftSettings();
private void Awake()
{
zone.spawnPoints = spawnPoints;
onGameSceneLoaded.Raise(zone);
}
// Start is called before the first frame update
void Start()
{
if (PhotonNetwork.LocalPlayer.IsMasterClient && zone.isHostileZone)
StartCoroutine(SpawnEnemiesWithDelay(zone));
}
public IEnumerator SpawnEnemiesWithDelay(ZoneData zoneData)
{
yield return new WaitForSeconds(GameConstants.GameBalancing.RiftStartSpawningDelay);
riftSettings.zoneData = zoneData;
riftSettings.numberOfWaves = Random.Range(GameConstants.GameBalancing.MinimumNumberOfWavesPerRift, GameConstants.GameBalancing.MaximumNumberOfWavesPerRift);
riftSettings.riftIndex = Random.Range(0, 5);
riftSettings.enemyIndexes_Quantity = new Dictionary<int, int>();
riftSettings.bossIndex = (int)zone.possibleEnemies[Random.Range(0, zone.possibleEnemies.Count)];
for (int i = 0; i < zone.possibleEnemies.Count; i++)
{
riftSettings.enemyIndexes_Quantity.Add((int)zone.possibleEnemies[i], Random.Range(GameConstants.GameBalancing.GetMinimumQuantityByEnemyID(zone.possibleEnemies[i]), GameConstants.GameBalancing.GetMaximumQuantityByEnemyID(zone.possibleEnemies[i])));
}
onSpawnRiftRequest.Raise(riftSettings);
}
}