Pedro Gomes 36a7e2760d Rift Raiding Content
- Turned multi job reward button click into a whole new content
- Rift raids open up on multijob completion, allowing players to dive deep and take action into the rifts themselves
2025-01-02 23:58:07 +00:00

49 lines
1.9 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>();
[SerializeField] private Transform playerBaseSpawnPoint;
RiftSettings riftSettings = new RiftSettings();
private void Awake()
{
zone.spawnPoints = spawnPoints;
zone.playerBaseSpawnPoint = playerBaseSpawnPoint;
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 = (int)zoneData.riftType;
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);
}
}