- Vamp's Den playable zone (dev level design), pls send help artists - Vampire playable character class (WIP) - Bugfixing & changes to enemy spawning system
47 lines
1.8 KiB
C#
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);
|
|
|
|
}
|
|
}
|