Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using UnityEngine;
- using UnityEngine.Networking;
- using System.Collections.Generic;
- namespace RoR2
- {
- public partial class CombatDirector : MonoBehaviour
- {
- public float timer = 0f;
- int monsterRating = 0;
- public Transform[] basicSpawner;
- public Transform[] flyerSpawner;
- public Transform[] crabSpawner;
- public Transform[] vagrantSpawner;
- public Transform[] bigSpawner;
- public string[] monsters;
- private void FixedUpdate()
- {
- // By emptying the CombatDirector we can handle monster spawns on our own.
- this.timer += Time.deltaTime;
- if(this.timer > 5f) // every 5 or so seconds we try to spawn something
- {
- this.timer = 0f;
- if(monsters == null)
- {
- this.basicSpawner = GameObject.Find("basic spawner").GetComponentsInChildren<Transform>();
- this.flyerSpawner = GameObject.Find("flyer spawner").GetComponentsInChildren<Transform>();
- this.crabSpawner = GameObject.Find("crab spawner").GetComponentsInChildren<Transform>();
- this.vagrantSpawner = GameObject.Find("vagrant spawner").GetComponentsInChildren<Transform>();
- this.bigSpawner = GameObject.Find("big spawner").GetComponentsInChildren<Transform>();
- monsters = new string[]
- {
- "Beetle",
- "Jellyfish",
- "Wisp",
- "Lemurian",
- "Golem",
- "Bell",
- "HermitCrab",
- "GreaterWisp",
- "Vagrant",
- "BeetleQueen",
- "Titan"
- };
- monsterRating = 4; // start off only able to spawn the first 4 monsters
- }
- // Choose a random monster
- string monsterName = monsters[UnityEngine.Random.Range(0, monsterRating-1)];
- // Choose spawn location
- Vector3 spawnPosition = Vector3.zero;
- if(monsterName == "Jellyfish" || monsterName == "Wisp" || monsterName == "GreaterWisp" || monsterName == "Bell")
- {
- spawnPosition = flyerSpawner[UnityEngine.Random.Range(0,flyerSpawner.Length)].position;
- }
- else if(monsterName == "HermitCrab")
- {
- spawnPosition = crabSpawner[UnityEngine.Random.Range(0,crabSpawner.Length)].position;
- }
- else if(monsterName == "Vagrant")
- {
- spawnPosition = vagrantSpawner[UnityEngine.Random.Range(0,vagrantSpawner.Length)].position;
- }
- else if(monsterName == "Vagrant")
- {
- spawnPosition = vagrantSpawner[UnityEngine.Random.Range(0,vagrantSpawner.Length)].position;
- }
- else if(monsterName == "BeetleQueen" || monsterName == "Titan")
- {
- spawnPosition = bigSpawner[UnityEngine.Random.Range(0,bigSpawner.Length)].position;
- }
- else
- {
- spawnPosition = basicSpawner[UnityEngine.Random.Range(0,basicSpawner.Length)].position;
- }
- GameObject prefab = MasterCatalog.FindMasterPrefab(monsterName + "Master");
- GameObject body = BodyCatalog.FindBodyPrefab(monsterName + "Body");
- GameObject monster = Instantiate<GameObject>(prefab, spawnPosition, Quaternion.identity);
- CharacterMaster master = monster.GetComponent<CharacterMaster>();
- NetworkServer.Spawn(monster);
- master.SpawnBody(body, spawnPosition, Quaternion.identity);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement