private void SpawnWave(int waveSize, Faction faction, bool isMultiSpawn) { AISquad enemySquad = new AISquad(); enemySquad.Faction = faction; //select a spawn point GameObject [] spawnPoints = GameObject.FindGameObjectsWithTag("Respawn"); int point = UnityEngine.Random.Range(0, spawnPoints.Length); for (int i = 0; i < waveSize; i++) { if (isMultiSpawn) { point = UnityEngine.Random.Range(0, spawnPoints.Length); } if (faction == Faction.Legionnaires) { enemySquad.AddMember(GameManager.Inst.NPCManager.SpawnRandomHumanCharacter("Bandit", enemySquad, spawnPoints[point].transform.position + new Vector3(UnityEngine.Random.value * 3, 0, UnityEngine.Random.value * 3))); } else if (faction == Faction.Military) { enemySquad.AddMember(GameManager.Inst.NPCManager.SpawnRandomHumanCharacter("Military", enemySquad, spawnPoints[point].transform.position + new Vector3(UnityEngine.Random.value * 3, 0, UnityEngine.Random.value * 3))); } else if (faction == Faction.Mutants) { string mutantName; int goapID; if (this.Stage < 7) { if (UnityEngine.Random.value > 0.6f) { mutantName = "Mutant1"; goapID = 3; } else { mutantName = "Mutant1"; goapID = 3; } } else { if (UnityEngine.Random.value < 0.3f) { mutantName = "Mutant1"; goapID = 3; } else { if (UnityEngine.Random.value > 0.6f) { mutantName = "Mutant4"; goapID = 2; } else { mutantName = "Mutant3"; goapID = 2; } } } MutantCharacter mutant = GameManager.Inst.NPCManager.SpawnRandomMutantCharacter(mutantName, enemySquad, spawnPoints[point].transform.position + new Vector3(UnityEngine.Random.value * 3, 0, UnityEngine.Random.value * 3)); mutant.MyAI.BlackBoard.PatrolLoc = new Vector3(62.7f, 0, -15); mutant.MyAI.BlackBoard.PatrolRange = new Vector3(30, 5, 15); mutant.MyAI.BlackBoard.CombatRange = new Vector3(40, 20, 20); mutant.MyAI.BlackBoard.HasPatrolInfo = true; } } enemySquad.IssueSquadCommand(); }
private void Initialize() { Inst = this; //Initializing CsDebug CsDebug debug = GetComponent<CsDebug>(); debug.Initialize(); //Initializing DBManager DBManager = new DBManager(); DBManager.Initialize(); //Initializing Event Manager EventManager = new EventManager(); EventManager.Initialize(); ItemManager = new ItemManager(); ItemManager.Initialize(); //Initializing NPC Manager NPCManager = new NPCManager(); NPCManager.Initialize(); PlayerControl = new PlayerControl(); PlayerControl.Initialize(); UIManager = new UIManager(); UIManager.Initialize(); MutantCharacter mutant1 = GameObject.Find("MutantCharacter").GetComponent<MutantCharacter>(); mutant1.Initialize(); mutant1.MyStatus.MaxHealth = 200; mutant1.MyStatus.Health = 200; mutant1.MyAI.BlackBoard.PatrolLoc = new Vector3(70, 0, -54); mutant1.MyAI.BlackBoard.PatrolRange = new Vector3(10, 5, 10); mutant1.MyAI.BlackBoard.CombatRange = new Vector3(20, 5, 20); mutant1.MyAI.BlackBoard.HasPatrolInfo = true; //HumanCharacter enemy1 = GameObject.Find("HumanCharacter2").GetComponent<HumanCharacter>(); HumanCharacter enemy2 = GameObject.Find("HumanCharacter4").GetComponent<HumanCharacter>(); //HumanCharacter enemy3 = GameObject.Find("HumanCharacter5").GetComponent<HumanCharacter>(); //HumanCharacter enemy4 = GameObject.Find("HumanCharacter6").GetComponent<HumanCharacter>(); AISquad enemySquad = new AISquad(); //enemySquad.Members.Add(enemy1); enemySquad.Members.Add(enemy2); //enemySquad.Members.Add(enemy3); //enemySquad.Members.Add(enemy4); /* enemy1.Initialize(); enemy1.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy1.Inventory); enemy1.MyAI.WeaponSystem.LoadWeaponsFromInventory(); */ enemy2.Initialize(); enemy2.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy2.Inventory); enemy2.MyAI.WeaponSystem.LoadWeaponsFromInventory(); /* enemy3.Initialize(); enemy3.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy3.Inventory); enemy3.MyAI.WeaponSystem.LoadWeaponsFromInventory(); enemy4.Initialize(); enemy4.MyAI.Squad = enemySquad; ItemManager.LoadNPCInventory(enemy4.Inventory); enemy4.MyAI.WeaponSystem.LoadWeaponsFromInventory(); */ //enemy1.MyStatus.MaxHealth = 160; //enemy1.MyStatus.Health = 160; enemy2.MyStatus.MaxHealth = 100; enemy2.MyStatus.Health = 100; /* enemy3.MyStatus.MaxHealth = 80; enemy3.MyStatus.Health = 80; enemy4.MyStatus.MaxHealth = 100; enemy4.MyStatus.Health = 100; */ enemySquad.IssueSquadCommand(); CameraController = GameObject.Find("CameraController").GetComponent<CameraController>(); CameraController.Initialize(); CameraShaker = CameraController.GetComponent<CameraShaker>(); CameraShaker.Initialize(); FXManager = new FXManager(); FXManager.Initialize(50); AIScheduler = new AIScheduler(); AIScheduler.Initialize(); CursorManager = new CursorManager(); CursorManager.Initialize(); StartCoroutine(DoPerSecond()); StartCoroutine(DoPerHalfSecond()); }