示例#1
0
	void Awake()
	{
		healthScript = GetComponent<HealthTransport> ();
		engineScript = GetComponent<EnginesFighter> ();
		//myRenderer = GetComponent<SpriteRenderer> ();
		//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.myTransports.Add (this.gameObject);
		foreach(GameObject turret in myTurrets)
		{
			if(!myCommander.myTurrets.Contains(turret))
			{
				myCommander.myTurrets.Add(turret);
			}
		}

		loadingUpLookAtPoint = myCommander.transform.position;
		carrySpots = new Transform[]{carry1, carry2, carry3};
	}
示例#2
0
	void Start()
	{
		animator = transform.parent.parent.GetComponent<Animator> ();
		hitCollider = transform.parent.parent.GetComponent<Collider2D> ();
		rollTime = rollDuration;
		myAudioSource = GetComponent<AudioSource>();
		playerMovementScript = transform.parent.transform.parent.GetComponent<PlayerFighterMovement>();
		enginesFighterScript = transform.parent.transform.parent.GetComponent<EnginesFighter>();

		if(playerControlled)
		{
			dodgeCooldownImage = GameObject.Find("Dodge Cooldown Image").GetComponent<Image>();
			dodgeCooldownImageText = dodgeCooldownImage.GetComponentInChildren<Text>();
			awarenessManaFillImage = GameObject.Find("Awareness Image").GetComponent<Image>();
			awarenessMeterAudioSource = awarenessManaFillImage.GetComponent<AudioSource>();
			powerupReadyImage = GameObject.Find("Powerup Image").GetComponent<Image>();

			if(powerupMechanicEnabled)
			{
				awarenessManaFillImage.fillAmount = (float)currentAwarenessLevel/maxAwarenessLevel;
				if(currentAwarenessLevel != maxAwarenessLevel)
					powerupReadyImage.transform.localScale = Vector3.zero;
				else
				{
					powerupReadyImage.transform.localScale = Vector3.one;
					_battleEventManager.instance.playerHasOneHitKills = true;
				}
			}
			else
			{
				awarenessManaFillImage.gameObject.SetActive(false);
			}
		}

	}
示例#3
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};
	}
示例#4
0
	void Awake ()
	{
		AwakeBaseClass ();

		myAIScript = GetComponent<AITransport> ();
		engineScript = GetComponent<EnginesFighter> ();

		flames.transform.position += (Vector3)Random.insideUnitCircle * 0.5f;
		smoke.transform.position = flames.transform.position - transform.up * 0.22f;
	}
示例#5
0
	protected void DogfightingFunction(EnginesFighter engineScript, GameObject target, WeaponsPrimaryFighter shootScript, float constantForwardThrustProportion)
	{
		//NB: It's important that we move before look, because the firing solution (in look) requires knowing the new movement position of the target

		engineScript.LookAtTarget (target);

		if(Vector2.Angle(transform.up, target.transform.position - transform.position) < 60)
		{
			engineScript.MoveToTarget (target, constantForwardThrustProportion);
		}

		
				
		if(Time.time > shootScript.nextFire &&
		   (ReadyAimFire(target, transform, shootScript.weaponsRange) == true || TakePotshot(transform, shootScript.weaponsRange) == true))
		{
			if(shootScript.enabled)
			{
				shootScript.FirePrimary(false);
			}
		}
	} 
示例#6
0
	void Awake () {
		myEngines = GetComponent<EnginesFighter> ();
		target = GameObject.FindGameObjectWithTag ("Player");
	}
示例#7
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