Esempio n. 1
0
    // Splits a marshmellow into smaller marshmellows
    void split()
    {
        // Creates a new marshmellow for the player
        Marshmellow newPlayer = null;

        if (mellowSize == MellowSize.LARGE)
        {
            newPlayer = Instantiate(manager.marshMedium, transform.position, transform.rotation).GetComponent <Marshmellow>();
        }
        else if (mellowSize == MellowSize.MEDIUM)
        {
            newPlayer = Instantiate(manager.marshSmall, transform.position, transform.rotation).GetComponent <Marshmellow>();
        }
        manager.player             = newPlayer;
        newPlayer.playerControlled = true;

        // Updates the other marshmellows
        newPlayer.marshmellows = marshmellows;

        // Creates other new marshmellows
        for (int i = 0; i < 3; i++)
        {
            Marshmellow temp = null;
            if (mellowSize == MellowSize.LARGE)
            {
                temp = Instantiate(manager.marshMedium, transform.position, transform.rotation).GetComponent <Marshmellow>();
            }
            else if (mellowSize == MellowSize.MEDIUM)
            {
                temp = Instantiate(manager.marshSmall, transform.position, transform.rotation).GetComponent <Marshmellow>();
            }
            newPlayer.marshmellows.Add(temp);
        }
        Destroy(gameObject);
    }
Esempio n. 2
0
 private void OnTriggerStay(Collider other)
 {
     if (other.tag == "Marshmellow")
     {
         Marshmellow mellow = other.GetComponent <Marshmellow>();
         if (mellow != null)
         {
             mellow.health -= damageOverTime * Time.deltaTime;
         }
     }
 }
Esempio n. 3
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Marshmellow")
     {
         Marshmellow mellow = other.GetComponent <Marshmellow>();
         if (mellow != null)
         {
             mellow.health -= damageOnEntry;
         }
     }
 }
Esempio n. 4
0
    // Merges a number of marshmellows together into a larger marshmellow
    void merge()
    {
        // Create a large marshmellow
        Marshmellow newPlayer = null;

        if (mellowSize == MellowSize.SMALL)
        {
            newPlayer = Instantiate(manager.marshMedium, transform.position, transform.rotation).GetComponent <Marshmellow>();
        }
        else if (mellowSize == MellowSize.MEDIUM)
        {
            newPlayer = Instantiate(manager.marshLarge, transform.position, transform.rotation).GetComponent <Marshmellow>();
        }
        manager.player             = newPlayer;
        newPlayer.playerControlled = true;

        // Updates the other marshmellows
        newPlayer.marshmellows = marshmellows;

        int        count    = 0;
        List <int> removing = new List <int>();

        for (int i = 0; i < marshmellows.Count; i++)
        {
            if (count < 3)
            {
                if (mellowSize == MellowSize.SMALL && marshmellows[i].mellowSize == MellowSize.SMALL)
                {
                    Destroy(marshmellows[i].gameObject);
                    removing.Add(i);
                    count++;
                }
                else if (mellowSize == MellowSize.MEDIUM && marshmellows[i].mellowSize == MellowSize.MEDIUM)
                {
                    Destroy(marshmellows[i].gameObject);
                    removing.Add(i);
                    count++;
                }
            }
        }
        for (int i = 0; i < removing.Count; i++)
        {
            removing[i] -= i;
            marshmellows.RemoveAt(removing[i]);
        }
        Destroy(gameObject);
    }
Esempio n. 5
0
    public Enemies GetEnemy(EnemyType type)
    {
        switch (type)
        {
        case EnemyType.Demon:

            Enemies demon = new Demon();
            return(demon);

        case EnemyType.King:
            Enemies king = new King();
            return(king);

        case EnemyType.Marshmellow:
            Enemies marshmellow = new Marshmellow();
            return(marshmellow);
        }
        return(null);
    }
Esempio n. 6
0
    // Handles when a player dies and inhabits another marshmellow
    public void die()
    {
        // If there is another marshmellow to inhabit
        if (marshmellows.Count != 0)
        {
            Marshmellow temp      = marshmellows[0];
            Marshmellow newPlayer = null;
            switch (temp.mellowSize)
            {
            case MellowSize.SMALL:
                newPlayer = Instantiate(manager.marshSmall, temp.safePos, temp.transform.rotation).GetComponent <Marshmellow>();
                break;

            case MellowSize.MEDIUM:
                newPlayer = Instantiate(manager.marshMedium, temp.safePos, temp.transform.rotation).GetComponent <Marshmellow>();
                break;

            case MellowSize.LARGE:
                newPlayer = Instantiate(manager.marshLarge, temp.safePos, temp.transform.rotation).GetComponent <Marshmellow>();
                break;
            }
            manager.player             = newPlayer;
            newPlayer.playerControlled = true;
            newPlayer.GetComponent <Collider>().enabled = true;

            // Updates the other marshmellows
            newPlayer.marshmellows = marshmellows;
            marshmellows.RemoveAt(0);

            // Destroy old marshmellow
            Destroy(temp.gameObject);
            Destroy(gameObject);
        }
        else
        {
        }
    }
Esempio n. 7
0
    void Update()
    {
        Ray        ray = new Ray(transform.position + transform.forward, manager.player.transform.position - transform.position);
        RaycastHit hit;

        chasing = false;
        Debug.DrawRay(ray.origin, ray.direction * 20.0f, Color.red);
        if (Physics.Raycast(ray, out hit, 20.0f))
        {
            Marshmellow mellow = hit.transform.GetComponent <Marshmellow>();
            if (mellow != null)
            {
                if (mellow.playerControlled == true)
                {
                    //chasing = true;
                }
            }
        }

        if (Physics.Raycast(transform.position, transform.forward, out hit, 1, LayerMask.GetMask("Marshmellow")))
        {
            //whomp-esque animation goes here
        }


        /// dummied out chasing mechanic

        /*
         * if (chasing == true) {
         *  setDestination(manager.player.transform.position);
         *
         *  if (Vector3.Distance(transform.position, destination) <= 2) {
         *      Debug.Log("ATTACK!");
         *      manager.player.squash();
         *  }
         * }
         * else
         */

        {
            setDestination(patrolPoints[currentTarget]);
            if (Vector3.Distance(patrolPoints[currentTarget], transform.position) < 2.5f)
            {
                currentTarget++;
                if (currentTarget >= patrolPoints.Count)
                {
                    currentTarget = 0;
                }
                setDestination(patrolPoints[currentTarget]);
            }
        }

        transform.position = Vector3.MoveTowards(transform.position, destination, moveSpeed * Time.deltaTime);

        Vector3 dir = destination - transform.position;

        if (dir == Vector3.zero)
        {
            return;
        }
        Quaternion rot = Quaternion.LookRotation(dir);

        transform.rotation = Quaternion.Slerp(transform.rotation, rot, moveSpeed * Time.deltaTime);
    }