Ejemplo n.º 1
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.CompareTag("attacker") && !immuneAttackers.Contains(other.gameObject))
        {
            Mutations    mutationScript      = other.gameObject.GetComponent <Mutations>();
            Track1Travel oldPathTravelScript = other.gameObject.GetComponent <Track1Travel>();

            if (hoopType == "subtraction")
            {
                nextObject = mutationScript.SubtractionMutation;
            }
            else if (hoopType == "addition")
            {
                nextObject = mutationScript.AdditionMutation;
            }
            else if (hoopType == "multiplication")
            {
                nextObject = mutationScript.Multiplication2Mutation;
            }
            else if (hoopType == "division")
            {
                nextObject = mutationScript.Division2Mutation;
            }

            if (nextObject == null)
            {
                showMoneyScript.currentMoney++;
                Instantiate(debris, other.gameObject.transform.position, Quaternion.identity);
                Destroy(other.gameObject);
            }
            else
            {
                GameObject newObject = Instantiate(nextObject, other.gameObject.transform.position, Quaternion.identity);
                immuneAttackers.Add(newObject);

                Track1Travel newPathTravelScript = newObject.GetComponent <Track1Travel>();
                newPathTravelScript.direction = oldPathTravelScript.direction;

                showMoneyScript.currentMoney++;
                Instantiate(debris, other.gameObject.transform.position, Quaternion.identity);
                Destroy(other.gameObject);
            }
        }
    }
Ejemplo n.º 2
0
    void Update()
    {
        if (bulletList.Count > 0)
        {
            if (bulletList.Count == 1)
            {
                if (bulletList[0] == "addition")
                {
                    nextObject = AdditionMutation;
                }
                else if (bulletList[0] == "subtraction")
                {
                    nextObject = SubtractionMutation;
                }
                else if (bulletList[0] == "multiplication")
                {
                    nextObject = Multiplication2Mutation;
                }
                else if (bulletList[0] == "division")
                {
                    nextObject = Division2Mutation;
                }
            }
            else if (bulletList.Count == 2)
            {
                // same operations:
                if (bulletList[0] == "addition" && bulletList[1] == "addition")
                {
                    nextObject = AdditionMutation.GetComponent <Mutations>().AdditionMutation;
                }
                else if (bulletList[0] == "subtraction" && bulletList[1] == "subtraction")
                {
                    nextObject = SubtractionMutation.GetComponent <Mutations>().SubtractionMutation;
                }
                else if (bulletList[0] == "multiplication" && bulletList[1] == "multiplication")
                {
                    nextObject = Multiplication2Mutation.GetComponent <Mutations>().Multiplication2Mutation;
                }
                else if (bulletList[0] == "division" && bulletList[1] == "division")
                {
                    nextObject = Division2Mutation.GetComponent <Mutations>().Division2Mutation;
                }
                // commutative operations:
                else if ((bulletList[0] == "addition" && bulletList[1] == "subtraction") || (bulletList[0] == "subtraction" && bulletList[1] == "addition"))
                {
                    nextObject = gameObject;
                }
                else if ((bulletList[0] == "multiplication" && bulletList[1] == "division") || (bulletList[0] == "division" && bulletList[1] == "multiplication"))
                {
                    nextObject = gameObject;
                }
                // other operations (tentative, since order of operations is arbitrary (does it have to be? this could be turned into a feature)):
                // edit: I'm going with this order of operations concept
                else if ((bulletList[0] == "addition" && bulletList[1] == "multiplication") || (bulletList[0] == "multiplication" && bulletList[1] == "addition"))
                {
                    nextObject = Multiplication2Mutation.GetComponent <Mutations>().AdditionMutation;
                }
                else if ((bulletList[0] == "addition" && bulletList[1] == "division") || (bulletList[0] == "division" && bulletList[1] == "addition"))
                {
                    nextObject = Division2Mutation.GetComponent <Mutations>().AdditionMutation;
                }
                else if ((bulletList[0] == "subtraction" && bulletList[1] == "multiplication") || (bulletList[0] == "multiplication" && bulletList[1] == "subtraction"))
                {
                    nextObject = Multiplication2Mutation.GetComponent <Mutations>().SubtractionMutation;
                }
                else if ((bulletList[0] == "subtraction" && bulletList[1] == "division") || (bulletList[0] == "division" && bulletList[1] == "subtraction"))
                {
                    nextObject = Division2Mutation.GetComponent <Mutations>().SubtractionMutation;
                }
            }
            else if (bulletList.Count == 3)
            {
                // finish later
            }

            if (nextObject == null)
            {
                showMoneyScript.currentMoney++;
                Instantiate(debris, transform.position, Quaternion.identity);
                Destroy(gameObject);
            }
            else
            {
                GameObject newObject = Instantiate(nextObject, transform.position, Quaternion.identity);

                Track1Travel oldPathTravelScript = gameObject.GetComponent <Track1Travel>();
                Track1Travel newPathTravelScript = newObject.GetComponent <Track1Travel>();
                newPathTravelScript.direction = oldPathTravelScript.direction;

                showMoneyScript.currentMoney++;
                Instantiate(debris, transform.position, Quaternion.identity);
                Destroy(gameObject);
            }
        }
    }