示例#1
0
    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();
    }
示例#2
0
	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());
	}