public void DieGame() { if (gameOverAnimator != null) { gameOverAnimator.gameObject.SetActive(true); gameOverAnimator.SetTrigger("gameover"); } //GameOver WaveSpawnerTwo waveSpawnerTwo = GameObject.FindObjectOfType <WaveSpawnerTwo>(); Destroy(waveSpawnerTwo); waveSpawnerTwo = null; HelpingHand helpingHand = GameObject.FindObjectOfType <HelpingHand>(); Destroy(helpingHand); helpingHand = null; Defendable blender = GameObject.FindObjectOfType <Defendable>(); Destroy(blender.gameObject); blender = null; Monster[] monsters = GameObject.FindObjectsOfType <Monster>(); for (int i = 0; i < monsters.Length; i++) { Destroy(monsters[i].gameObject); } monsters = null; isGameOver = true; }
void OnCollisionEnter(Collision other) { Monster monster = other.collider.GetComponent <Monster>(); if (monster != null) { if (!monster.isInholding /*&& smoothPoints < 60*/) { // GameValues.SCORE++; monster.isInBlender = true; smoothPoints += monster.fruitSize; GameValues.BlenderFilledPoints += monster.fruitSize; //Debug.Log(smoothPoints); //GameValues.BlenderFilledPoints += smoothPoints; monsters.Add(monster.gameObject); //We are gone! WaveSpawnerTwo waveSpawner = FindObjectOfType <WaveSpawnerTwo>(); waveSpawner.SpawnedMonsters.Remove(monster.gameObject); Defendable defendAble = GameObject.FindObjectOfType <Defendable>(); defendAble.HandleBlenderFilling(); //monster.Die(); } } }
protected virtual void OnCollisionEnter(Collision collision) { Defendable defendable = collision.gameObject.GetComponent <Defendable>(); //Get Defendable Collision if (defendable != null) //If we collide with the defendable? { #if EXPLODE_IMPACT //TODO improve Explosion Particle defendable.DoDamage(damage); //Damage the defendable GameValues.SCORE--; Die(); //destroy #endif } }
protected override void OnCollisionEnter(Collision collision) { #if !EXPLODE_IMPACT Defendable defendable = collision.gameObject.GetComponent <Defendable>(); //Get Defendable Collision if (defendable != null) //If we collide with the defendable? { //TODO Sexy Explosion Particle defendable.DoDamage(damage);//Damage the defendable Die(); //GameObject.Instantiate(explosionEffect,transform.position,transform.rotation); //Destroy(this.gameObject); } #endif base.OnCollisionEnter(collision); }
public void Blend() { for (int i = 0; i < monsters.Count; i++) { Monster monster = monsters[i].GetComponent <Monster>(); monster.Die(); // GameValues.SCORE++; } //SmoothObject.active = true; if (smoothPoints > 20 && smoothPoints < 40) { GameValues.SMOOTHYPOINTS += (smoothPoints * 2); } else if (smoothPoints > 40) { GameValues.SMOOTHYPOINTS += (smoothPoints * 4); } else { GameValues.SMOOTHYPOINTS += smoothPoints; } GameValues.SCORE += smoothPoints; GameValues.SMOOTHYPOINTS += smoothPoints; smoothyText.text = GameValues.SMOOTHYPOINTS.ToString(); smoothPoints = 0; GameValues.BlenderFilledPoints = 0; if (SmoothObject.activeSelf == false) { //SmoothObject.active = true; SmoothObject.SetActive(true); smoothAnimator.SetTrigger("Smooth"); } cameraAnimator.SetTrigger("Shake"); drawerAnimator.SetTrigger("Shake"); spiceJarsAnimator.SetTrigger("Shake"); monsters = new List <GameObject>(); shakeTime = Time.time + CamShakeTime; isBlending = true; Defendable defendAble = GameObject.FindObjectOfType <Defendable>(); defendAble.HandleBlenderFilling(); SoundManager.Instance.PlaySound(blendSound, transform.position, SoundManager.SoundTypes.EFFECT); }
private void AutoMove() { if ((GameValues.AutoMoveX || GameValues.AutoMoveY) && !isHoldingObject) { //bool isAboveBlender = false; Monster monster = null; // GameObject monsterGo = null; //if(targetMonster == null) targetMonster = EUtils.GetNearestObject(waveSpawner.SpawnedMonsters, transform.position); RaycastHit[] hit; if (targetMonster != null) { //BlenderCatch blender = GameObject.FindObjectOfType<BlenderCatch>(); Defendable defendAble = GameObject.FindObjectOfType <Defendable>(); //Vector3 castPosition = new Vector3(transform.position.x, transform.position.y + (EUtils.GetObjectCollUnitSize(gameObject).y), transform.position.z); hit = Physics.RaycastAll(targetMonster.transform.position, -Vector3.up /* * 0.5f*/, float.MaxValue); //Debug.DrawRay(castPosition, transform.forward * attackDistance, Color.red); // Debug.Log(hit.Length); for (int i = 0; i < hit.Length; i++) { Defendable blenderCatch = hit[i].collider.GetComponent <Defendable>(); if (blenderCatch != null) { targetMonster = null; return; } } monster = targetMonster.GetComponent <Monster>(); } if (GameValues.AutoMoveX) { if (monster != null) { Ray monsterRay = new Ray(monster.transform.position, -Vector3.up); RaycastHit monsterHit; if (!monster.isInBlender && !monster.isStunned) { Vector3 targetPosition = new Vector3(monster.transform.position.x, transform.position.y, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } } if (GameValues.AutoMoveY) { if (monster != null) { //Vector3.Distance(transform.position, monster.transform.position) < 1) //if (!monster.isInBlender && transform.position.x == monster.transform.position.x) if (!monster.isInBlender && !monster.isStunned && Mathf.Abs(transform.position.x - monster.transform.position.x) < 1) { Vector3 targetPosition = new Vector3(transform.position.x, monster.transform.position.y, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } } if (GameValues.AutoGrab) { if (monster != null) { if (!monster.isInBlender && !monster.isStunned && Vector3.Distance(transform.position, monster.transform.position) < 1) { VisualSqueeze(monster.minPressure + 4); } } } } else if ((GameValues.AutoMoveX || GameValues.AutoMoveY) && isHoldingObject) { BlenderCatch blender = GameObject.FindObjectOfType <BlenderCatch>();//EUtils.GetNearestObject(waveSpawner.SpawnedMonsters, transform.position); if (GameValues.AutoMoveX) { //if (blender != null && /*transform.position.y == blender.transform.position.y + 7.50f*/) if (blender != null && Mathf.Abs(transform.position.y - blender.transform.position.y) > 5.50f) { Vector3 targetPosition = new Vector3(blender.transform.position.x, transform.position.y, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } if (GameValues.AutoMoveY) { if (blender != null) { Vector3 targetPosition = new Vector3(transform.position.x, blender.transform.position.y + 5.75f, transform.position.z); transform.position = Vector3.MoveTowards(transform.position, targetPosition, 10 * Time.deltaTime); } } if (GameValues.AutoGrab) { if (blender != null) { //if (transform.position.y == blender.transform.position.y + 7.50f && Mathf.Abs(transform.position.x - blender.transform.position.x) < 1) if (Mathf.Abs(transform.position.y - blender.transform.position.y) > 5.50f && Mathf.Abs(transform.position.x - blender.transform.position.x) < 0.5f) { VisualSqueeze(1); } } } } }
public void Shoot(float bulletDamage, Defendable targetObject) { damage = bulletDamage; target = targetObject; }