Beispiel #1
0
	void Awake()
	{
		healthScript = GetComponent<HealthFighter> ();
		engineScript = GetComponent<EnginesFighter> ();
		shootScript = GetComponentInChildren<WeaponsPrimaryFighter> ();
		missilesScript = GetComponentInChildren<WeaponsSecondaryFighter> ();

		myRigidbody = GetComponent<Rigidbody2D> ();

		if (whichSide == WhichSide.Ally)
		{
			myCommander = GameObject.FindGameObjectWithTag("AIManager").transform.FindChild("PMC Commander").GetComponent<AICommander> ();
			enemyCommander = GameObject.FindGameObjectWithTag("AIManager").transform.FindChild("Enemy Commander").GetComponent<AICommander> ();
		}
		else if (whichSide == WhichSide.Enemy)
		{
			myCommander = GameObject.FindGameObjectWithTag("AIManager").transform.FindChild("Enemy Commander").GetComponent<AICommander> ();
			enemyCommander = GameObject.FindGameObjectWithTag("AIManager").transform.FindChild("PMC Commander").GetComponent<AICommander> ();
		}
		myCommander.myFighters.Add (this.gameObject);

		normalStates = new StateMachine[]{StateMachine.Patroling};
		combatStates = new StateMachine[]{StateMachine.Dogfight};
		formUpStates = new StateMachine[]{StateMachine.FormUp};
		coverMeStates = new StateMachine[]{StateMachine.Covering};
		retreatStates = new StateMachine[] {StateMachine.Evade, StateMachine.Retreat};
		deathStates = new StateMachine[] {StateMachine.NA};
	}
Beispiel #2
0
	void Awake()
	{
		if(instance == null)
		{
			instance = this;
		}
		else
		{
			Debug.LogError("There were 2 PlayerAILogic scripts");
			Destroy(gameObject);
			return;
		}
		healthScript = GetComponent<HealthFighter> ();
		engineScript = GetComponent<PlayerFighterMovement> ();
		shootScript = GetComponentInChildren<WeaponsPrimaryFighter> ();
		missilesScript = GetComponentInChildren<WeaponsSecondaryFighter> ();
		dodgeScript = GetComponentInChildren<Dodge>();
	}
Beispiel #3
0
	void Awake()
	{
		player = GameObject.FindGameObjectWithTag ("PlayerFighter");
		player.GetComponentInChildren<WeaponsPrimaryFighter> ().allowedToFire = false;

		playerHealth = player.GetComponent<HealthFighter> ();

		enemyCommander = GameObject.Find ("Enemy Commander").GetComponent<AICommander> ();

		startKeyboardText = keyboardControlsText.text;

		ChangeControlsImage (PlayerPrefs.GetString("Control Scheme"));

		/*feedbackButton.gameObject.SetActive (true);
		Navigation navUp = resumeButton.navigation;
		navUp.selectOnUp = feedbackButton;
		resumeButton.navigation = navUp;

		Navigation navUp2 = quitButton.navigation;
		navUp2.selectOnUp = feedbackButton;
		quitButton.navigation = navUp2;

		Navigation navDown = controlsButton.navigation;
		navDown.selectOnDown = feedbackButton;
		controlsButton.navigation = navDown;*/

		objectiveText.enabled = false;

		startPos = (GameObject.FindGameObjectWithTag ("AIManager").transform.FindChild ("PMC Commander").position - Vector3.zero).normalized * 500;

		spawnerScript = GetComponent<Spawner> ();
	}
Beispiel #4
0
	}//end of ReelInPassengers


	public void SetUpReferences()
	{
		if(reelingInPlayerGroup)
		{
			carryFighter1 = GameObject.FindGameObjectWithTag("PlayerFighter");
			carryFighter1.GetComponent<PlayerFighterMovement>().enabled = false; //we'll have to take over certain animation functions here, then.
			carryFighter1.GetComponentInChildren<Dodge>().enabled = false;
			carryFighter1Engines = carryFighter1.GetComponent<EnginesFighter>();
			carryFighter1Health = carryFighter1.GetComponent<HealthFighter>();
			playerHadAutoDodge = carryFighter1Health.playerHasAutoDodge;
			playerManaToRestore = carryFighter1Health.manaToRestoreOnAHit;
			carryFighter1Health.manaToRestoreOnAHit = 0;
			carryFighter1Health.playerHasAutoDodge = false;
			carryFighter1.SendMessage("ToggleWeaponsOnOff", false);
		}
		else
		{
			//TODO: let the AI groups do this too somehow
		}
		
		//change the squad's orders behaviour
		carryFighter1.GetComponentInChildren<SquadronLeader>().firstFlightOrders = SquadronLeader.Orders.Extraction;
		//TODO: check if it's actually the first flight, or if 2nd - 4th
		
		//get the wingmen and create arrays of engine and fighter references
		if(carryFighter1.GetComponentInChildren<SquadronLeader>().activeWingmen.Count >= 1)
		{
			carryFighter2 = carryFighter1.GetComponentInChildren<SquadronLeader>().activeWingmen[0];
			carryFighter2Engines = carryFighter2.GetComponent<EnginesFighter>();
			fighterEngineScripts = new EnginesFighter[]{carryFighter1Engines, carryFighter2Engines};
			carryFighter2Health = carryFighter2.GetComponent<HealthFighter>();
			fighterHealthScripts = new HealthFighter[] {carryFighter1Health, carryFighter2Health};
			fightersToCarry = new GameObject[]{carryFighter1, carryFighter2};
			
			if(carryFighter1.GetComponentInChildren<SquadronLeader>().activeWingmen.Count >= 2)
			{
				carryFighter3 = carryFighter1.GetComponentInChildren<SquadronLeader>().activeWingmen[1];
				carryFighter3Engines = carryFighter3.GetComponent<EnginesFighter>();
				fighterEngineScripts = new EnginesFighter[]{carryFighter1Engines, carryFighter2Engines, carryFighter3Engines};
				carryFighter3Health = carryFighter3.GetComponent<HealthFighter>();
				fighterHealthScripts = new HealthFighter[] {carryFighter1Health, carryFighter2Health, carryFighter3Health};
				fightersToCarry = new GameObject[]{carryFighter1, carryFighter2, carryFighter3};
			}
		}
		else
		{
			fightersToCarry = new GameObject[]{carryFighter1};
			fighterEngineScripts = new EnginesFighter[]{carryFighter1Engines};
			fighterHealthScripts = new HealthFighter[] {carryFighter1Health};
		}
		
		//change states and disable components
		foreach(GameObject fighter in fightersToCarry)
		{
			if(fighter.tag == "Fighter")
			{
				AIFighter fighterAIScript = fighter.GetComponent<AIFighter>();
				fighterAIScript.ChangeToNewState(new AIFighter.StateMachine[]{AIFighter.StateMachine.Docking}, new float[]{1});
				fighterAIScript.dockingWith = this.gameObject;
				fighterAIScript.healthScript.hasDodge = false;
				fighter.transform.FindChild("Breathing Room").gameObject.SetActive(false);
				fighter.SendMessage("ToggleWeaponsOnOff", false);
			}
		}
		foreach(EnginesFighter engScript in fighterEngineScripts)
		{
			engScript.linedUp = false;
			engScript.secured = false;
		}
	}//end of SetUpReferences