Esempio n. 1
0
 private void MoveBack()
 {
     if (thisScript.shortestEnemyDistance < stopByEnemy && isCharging && thisScript.shortestEnemyScript != null)
     {
         thisScript.shortestEnemyScript.MoveBack();
         thisScript.GetDamage();
     }
 }
    private void CheckAttack()
    {
        float distance = 0f;

        try
        {
            if (isPlayerProjection)
            {
                if (thisUnitScript.buildingIsShortest)
                {
                    distance = Vector2.Distance(currentPosition, gameManager.GetEnemyUnitSpawnPosition().position);
                }
                else
                {
                    distance = Vector2.Distance(currentPosition, thisUnitScript.shortestEnemyScript.GetCurrentPosition());
                }

                if (distance <= hitRange)
                {
                    thisUnitScript.GetDamage(this.transform);

                    Destroy(gameObject);
                    fusionManager.projectionScripts.Remove(this);
                }
            }
            else
            {
                if (thisEnemyScript.buildingIsShortest)
                {
                    distance = Vector2.Distance(currentPosition, gameManager.GetUnitSpawnPosition().position);
                }
                else
                {
                    distance = Vector2.Distance(currentPosition, thisEnemyScript.shortestScript.GetCurrentPosition());
                }

                if (distance <= hitRange)
                {
                    thisEnemyScript.GetDamage(this.transform);

                    Destroy(gameObject);
                    fusionManager.projectionScripts.Remove(this);
                }
            }
        }
        catch (NullReferenceException)
        {
            Destroy(gameObject);
            fusionManager.projectionScripts.Remove(this);
        }
    }