Esempio n. 1
0
    public virtual void Produce()
    {
        int production = CalculateProduction();

        GameObject  popUpObject = Instantiate(popUpPrefab, transform.position, Quaternion.identity, transform);
        NumberPopUp popUp       = popUpObject.GetComponent <NumberPopUp>();

        popUp.text.text = production.ToString();

        Instantiate(Treasury.instance.collectEffectPrefab, transform.position, Quaternion.identity);

        Treasury.instance.AddMoney(production);
    }
Esempio n. 2
0
    public static NumberPopUp Create(Vector3 position, int NumberAmount, int PopUpType, GameObject parentObject)
    {
        GameObject  numberPopUpTransform = Instantiate(Resources.Load("Prefabs/NumberPopUp") as GameObject);
        NumberPopUp numberPopUp          = numberPopUpTransform.GetComponent <NumberPopUp>();

        numberPopUp.setup(NumberAmount, PopUpType);

        numberPopUp.transform.position = position;
        numberPopUp.transform.SetParent(parentObject.transform);



        Destroy(numberPopUpTransform, 1f);

        return(numberPopUp);
    }
Esempio n. 3
0
    // ..........................................//
    //-------------- START OF UPDATE --------------//
    // ..........................................//

    void Update()
    {
        // set Sprite
        SpriteRenderer SR = gameObject.GetComponent <SpriteRenderer>();

        SR.sprite = CellScriptableObject.CellSprite;


        // ------- set Behaviour ------- //
        //...............................//
        // ------------- Idle Cell ------------ //

        if (CellScriptableObject.CellID == 0)
        {
            if (transform.position != RandomPosition)
            {
                transform.position = Vector3.MoveTowards(transform.position, RandomPosition, IdleSpeed);
            }
            else
            {
                randomizePos();
            }
        }

        // ---------- Red Blood Cell --------- //

        else if (CellScriptableObject.CellID == 1)
        {
            mlookDirection = (Target.position - transform.position).normalized;

            if ((transform.position - Target.position).magnitude > Epsilon)
            {
                transform.Translate(mlookDirection * MoveSpeed * Time.deltaTime);
            }
        }

        // ---------- White Blood Cell --------- //

        else if (CellScriptableObject.CellID == 2)
        {
            GameObject target = FindClosestEnemy();
            //check if there are eneimes
            if (target != null)
            {
                //check if is inside body

                Enemy enemy = target.GetComponent <Enemy>();
                if (enemy.IsInsideBody == true)
                {
                    float step = speed * Time.deltaTime;
                    transform.position = Vector3.MoveTowards(transform.position, target.transform.position, step);

                    //check if is in attack range
                    if (Vector3.Distance(transform.position, target.transform.position) < 0.2f)
                    {
                        speed = 0;
                        if (isAttacking == false)
                        {
                            Enemy EnemyCS = target.GetComponent <Enemy>();
                            EnemyCS.TakeDamage(CellScriptableObject.CellID, CellScriptableObject.Damage);
                            NumberPopUp.Create(transform.position, CellScriptableObject.Damage, 2, this.gameObject);
                            StartCoroutine(restartAttack());
                            isAttacking = true;
                        }
                    }
                    else
                    {
                        if (speed < 1)
                        {
                            speed += 0.01f;
                        }
                    }
                }
                else
                {
                    if (InPatrol <= PatrolPoints.Length - 1)
                    {
                        transform.position = Vector3.MoveTowards(transform.position, PatrolPoints[InPatrol].position, IdleSpeed);
                        if (Vector3.Distance(transform.position, PatrolPoints[InPatrol].position) < 0.2f)
                        {
                            InPatrol++;
                        }
                    }
                    else
                    {
                        InPatrol = 0;
                    }
                }
            }
            else
            {
                if (InPatrol <= PatrolPoints.Length - 1)
                {
                    transform.position = Vector3.MoveTowards(transform.position, PatrolPoints[InPatrol].position, IdleSpeed);
                    if (Vector3.Distance(transform.position, PatrolPoints[InPatrol].position) < 0.2f)
                    {
                        InPatrol++;
                    }
                }
                else
                {
                    InPatrol = 0;
                }
            }
        }


        //---------------- palette cell ------------- //
    }
Esempio n. 4
0
    //---------------------- Red blood cell functions -----------------//

    public void showPointsGained()
    {
        //StartCoroutine(RedBloodCellPlusOneOn());
        NumberPopUp.Create(transform.position + new Vector3(0, .2f, 0), 1, 1, this.gameObject);
    }