// Use this for initialization void Start() { if(FindObjectOfType<HeroShipAI>() != null) { mHero = FindObjectOfType<HeroShipAI>(); } }
public virtual void Start() { if(mHero == null) { mHero = FindObjectOfType<HeroShipAI>(); } rgb2d = GetComponent<Rigidbody2D> (); }
void Update() { if(!mAutoRotate) { mTargetRotation = new Vector3(Input.GetAxis ("RightAnalogHorizontal"), Input.GetAxis ("RightAnalogVertical"), 0); Vector3.Normalize (mTargetRotation); mTargetRotation = new Vector3(0f, 0f, Vector3.Angle(mTargetRotation, Vector3.down)); if(Input.GetAxis ("RightAnalogHorizontal") < 0f) { mTargetRotation *= -1f; } if(Input.GetAxis ("RightAnalogHorizontal") !=0f || Input.GetAxis ("RightAnalogVertical") != 0f) { transform.rotation =Quaternion.Lerp (transform.rotation, Quaternion.Euler (mTargetRotation), 0.001f*mRotateSpeed); } } else { if(mTargetPlayer == null) { if(FindObjectOfType<HeroShipAI>() != null) { mTargetPlayer = FindObjectOfType<HeroShipAI>(); } } else { mTargetPlayerPosition = mTargetPlayer.gameObject.transform.position; mTargetRotation = new Vector3(mTargetPlayerPosition.x-transform.position.x,mTargetPlayerPosition.y-transform.position.y,0f); //mTargetRotation += Vector3.up*3f; } Vector3.Normalize (mTargetRotation); mTargetRotation = new Vector3(0f, 0f, Vector3.Angle(mTargetRotation, Vector3.down)); if(mTargetPlayerPosition.x < transform.position.x) { mTargetRotation *= -1f; } transform.rotation =Quaternion.Lerp (transform.rotation, Quaternion.Euler (mTargetRotation), 0.001f*mRotateSpeed * Time.timeScale); } //transform.rotation = new Quaternion(Input.GetAxis ("RightAnalogHorizontal"), Input.GetAxis ("RightAnalogVertical"), 0, 0); }
public virtual void Update() { if(mEntryTime >= 0f) { mEntryTime -= Time.deltaTime; } if(mHero == null) { mHero = FindObjectOfType<HeroShipAI>(); } else { if(!mHero.mHasEntered) { mOverheated = true; mCurrentOverheat = 10f; } if(mWeakPointTransforms.Count >0 && mWeakPointTransforms[0] != null) { mHero.mTarget = mWeakPointTransforms[0]; } } if(mWeakPointTransforms.Count >0 && mWeakPointTransforms[0] == null) { mWeakPointTransforms.Remove(null); } if(mWeakPoints.Count >0 && mWeakPoints[0] == null) { mWeakPoints.Remove(null); } float horizontal = Input.GetAxis ("Horizontal"); float vertical = Input.GetAxis ("Vertical"); rgb2d.velocity = new Vector2 (horizontal * mMoveSpeed, vertical * mMoveSpeed); //Keep the boss within the bounds of the screen ~Adam if(mBounds.Length >=4) { //X-Min ~Adam if(transform.position.x < mBounds[0]) { transform.position = new Vector3(mBounds[0], transform.position.y, transform.position.z); } //X-Max ~Adam if (transform.position.x > mBounds[1]) { transform.position = new Vector3(mBounds[1], transform.position.y, transform.position.z); } //Y-Min ~Adam if(transform.position.y < mBounds[2]) { transform.position = new Vector3(transform.position.x, mBounds[2], transform.position.z); } //Y-Max ~Adam if (transform.position.y > mBounds[3]) { transform.position = new Vector3(transform.position.x, mBounds[3], transform.position.z); } } //Die and spawn the next boss ~Adam if(mDying == true) { mDeathTimer -= Time.deltaTime; if(mDeathEffect != null) { mDeathEffect.SetActive (true); } if(mDeathTimer <= 0f) { if(mNextBoss != null) { Instantiate (mNextBoss, new Vector3(0f,0f,-2f), Quaternion.identity); } else { Application.LoadLevel(0); } Destroy (this.gameObject); } } //For Overheat Timers ~Adam if(mCurrentOverheat <= mMaxOverheat && !mOverheated) { mCurrentOverheat += Time.deltaTime; } else if(mCurrentOverheat >= mMaxOverheat) { mOverheated = true; } if(mOverheated) { mCurrentOverheat -= Time.deltaTime*5f; if(mCurrentOverheat <= 0f) { mCurrentOverheat = 0f; mOverheated = false; } } //For Charge Timers ~Adam if(mCurrentCharge < mMaxCharge && !mChargeReady) { mCurrentCharge += Time.deltaTime; } else if(mCurrentCharge >= mMaxCharge) { mChargeReady = true; if(mCurrentCharge > mMaxCharge) { mCurrentCharge = mMaxCharge; } } }
// Update is called once per frame void Update() { if(mHero == null) { mShipIcon.sprite = mShipStages[7]; mHealthPercent = 0f; if(FindObjectOfType<HeroShipAI>() != null) { mHero = FindObjectOfType<HeroShipAI>(); } } else { //Find how much health the current hero ship has left ~Adam mHealthPercent = mHero.mHitsRemaining/(mHero.mMaxHits+0.001f); //Change the display of the ship based on health percentage ~Adam if(mShipIcon != null && mShipStages.Length >= 8) { //Ship at full health ~Adam if(mHealthPercent >= 0.9f) { mShipIcon.sprite = mShipStages[0]; } //One Claw down ~Adam else if(mHealthPercent >= 0.8f) { mShipIcon.sprite = mShipStages[1]; } //Both Claws down ~Adam else if(mHealthPercent >= 0.6f) { mShipIcon.sprite = mShipStages[2]; } //One Gun down ~Adam else if(mHealthPercent >= 0.4f) { mShipIcon.sprite = mShipStages[3]; } //Both Guns down ~Adam else if(mHealthPercent >= 0.2f) { mShipIcon.sprite = mShipStages[4]; } //One Wing down ~Adam else if(mHealthPercent >= 0.1f) { mShipIcon.sprite = mShipStages[5]; } //Both Wings down ~Adam else if(mHealthPercent >= 0.01f) { mShipIcon.sprite = mShipStages[6]; } //Dead Ship ~Adam else { mShipIcon.sprite = mShipStages[7]; } } if(!mHero.mHasEntered) { mShipIcon.sprite = mShipStages[7]; } } //Adjust life meter mHealthPanel.localScale = new Vector3(mHealthPercent,1f,1f); }