Пример #1
0
    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;
    }
Пример #2
0
    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();
            }
        }
    }
Пример #3
0
    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
        }
    }
Пример #4
0
    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);
    }
Пример #5
0
    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);
    }
Пример #6
0
    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);
                    }
                }
            }
        }
    }
Пример #7
0
 public void Shoot(float bulletDamage, Defendable targetObject)
 {
     damage = bulletDamage;
     target = targetObject;
 }