Exemplo n.º 1
0
        public void checkSpots()
        {
            SpotChecker c = new SpotChecker();

            c.check(0);
            c.check(1);
            c.check(1375228800);
            c.check(1 << 30);
            c.check(1 << 31);
        }
Exemplo n.º 2
0
    // Update is called once per frame
    public virtual void Update()
    {
        float distToTower = Vector3.Distance(transform.position, TowerController.instance.target.position);

        if (isAlive)
        {
            if (distToTower > distance)
            {
                float step = speed * Time.deltaTime;
                transform.position = Vector3.MoveTowards(transform.position, TowerController.instance.target.position, step);
            }
            else
            {
                if (target == null)
                {
                    target = TowerController.instance.GetSpot(gameObject, enemyType);
                }
                float newDistance = Vector3.Distance(transform.position, target.position.transform.position);
                if (newDistance > 0.1f)
                {
                    float step = speed * Time.deltaTime;
                    transform.position = Vector3.MoveTowards(transform.position, target.position.transform.position, step);
                }
                else
                {
                    if (target.spotId > TowerController.instance.splitIn)
                    {
                        sprite.flipX = true;
                    }
                    else
                    {
                        sprite.flipX = false;
                    }
                    attacking = true;
                }
            }

            if (!attacking)
            {
                if (!source.isPlaying)
                {
                    source.clip = walkSound[Random.Range(0, walkSound.Count)];
                    source.Play();
                }
            }
            else
            {
                if (!source.isPlaying)
                {
                    source.clip = attackSound[Random.Range(0, attackSound.Count)];
                    source.Play();
                }
            }
        }
    }
Exemplo n.º 3
0
 private void Awake()
 {
     if (!instance)
     {
         instance = this;
     }
     else
     {
         Destroy(gameObject); return;
     }
     DontDestroyOnLoad(this);
 }
Exemplo n.º 4
0
    public SpotChecker GetSpot(GameObject enemy, EnemyType enemyType)
    {
        SpotChecker spotToSend   = new SpotChecker();
        float       distance     = 0;
        float       tempDistance = 0;

        switch (enemyType)
        {
        case EnemyType.enemy1:
            spotToSend = inerSpots[0];
            distance   = Vector3.Distance(enemy.transform.position, spotToSend.position.transform.position);
            for (int i = 1; i < inerSpots.Count; i++)
            {
                if (inerSpots[i].enemyQuantity < spotToSend.enemyQuantity)
                {
                    spotToSend = inerSpots[i];
                }
                else if (inerSpots[i].enemyQuantity == spotToSend.enemyQuantity)
                {
                    tempDistance = Vector3.Distance(enemy.transform.position, inerSpots[i].position.transform.position);
                    if (tempDistance < distance)
                    {
                        spotToSend = inerSpots[i];
                    }
                }
                distance = Vector3.Distance(enemy.transform.position, spotToSend.position.transform.position);
            }
            break;

        case EnemyType.enemy2:
            spotToSend = farSpots[0];
            distance   = Vector3.Distance(enemy.transform.position, spotToSend.position.transform.position);
            for (int i = 1; i < farSpots.Count; i++)
            {
                if (farSpots[i].enemyQuantity < spotToSend.enemyQuantity)
                {
                    spotToSend = farSpots[i];
                }
                else if (farSpots[i].enemyQuantity == spotToSend.enemyQuantity)
                {
                    tempDistance = Vector3.Distance(enemy.transform.position, farSpots[i].position.transform.position);
                    if (tempDistance < distance)
                    {
                        spotToSend = farSpots[i];
                    }
                }
                distance = Vector3.Distance(enemy.transform.position, spotToSend.position.transform.position);
            }
            break;
        }
        spotToSend.enemyQuantity++;
        return(spotToSend);
    }