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}; }
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>(); }
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> (); }
}//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