private void Start()
 {
     myAnimator                  = GetComponent <Animator>();
     myPatrolmanScript           = GetComponent <Patrolman>();
     detectorEnemiesInAttackZone = GetComponent <DetectorEnemiesInAttackZone>();
     myMovementScript            = GetComponent <EnemiesMovement>();
 }
Esempio n. 2
0
    public void WindPush(Vector2 playerPosition, Vector2 windPushRadius, LayerMask enemiesLayer, float pushForce)
    {
        Debug.Log("Do wind push");
        bool ifGoblinsInWindPushRadius = Physics2D.OverlapBox(playerPosition, windPushRadius, 0, enemiesLayer);

        Debug.Log(ifGoblinsInWindPushRadius);
        Collider2D[] enemiesInWindPushRadius = Physics2D.OverlapBoxAll(playerPosition, windPushRadius, 0, enemiesLayer);
        foreach (Collider2D enemy in enemiesInWindPushRadius)
        {
            Vector2 feetPosition = enemy.gameObject.transform.parent.position;
            Debug.Log(feetPosition + " " + playerPosition);
            float   gipotenusa = Mathf.Sqrt(Mathf.Pow(feetPosition.x - playerPosition.x, 2) + Mathf.Pow(feetPosition.y - playerPosition.y, 2));
            Vector2 singleVector;
            if (gipotenusa == 0)
            {
                singleVector = new Vector2(0, 0);
            }
            else
            {
                singleVector = new Vector2(feetPosition.x - playerPosition.x / gipotenusa, feetPosition.y - playerPosition.y / gipotenusa);
            }

            EnemiesMovement enemiesMovement = enemy.gameObject.GetComponentInParent <EnemiesMovement>();
            if (enemiesMovement)
            {
                enemiesMovement.GetPunch(singleVector.x * pushForce, singleVector.y * pushForce);
            }
        }
    }
Esempio n. 3
0
 private void Start()
 {
     myMovementScript = GetComponent <EnemiesMovement>();
     currentAngle     = -maxDeflectionAngle;
     isPlayerDetecterRayAngleIncreases = true;
     currentTimeInLoop    = 0;
     timeOnRayLoopUpdate /= 2f;
 }
Esempio n. 4
0
 public void SetPlayer(PatrolPoint playerPatrolPoint, Transform playerTransform)
 {
     if (!patrolman)
     {
         patrolman            = GetComponent <Patrolman>();
         this.playerTransform = playerTransform;
     }
     this.playerPatrolPoint = playerPatrolPoint;
     enemiesMovement        = GetComponent <EnemiesMovement>();
     patrolman.SetPatrolPoint(playerPatrolPoint, 0);
 }
Esempio n. 5
0
 private void FlipIfDontKnowWhereAttackFrom()
 {
     if (!enemiesMovement)
     {
         enemiesMovement = GetComponent <EnemiesMovement>();
     }
     if (enemiesMovement)
     {
         enemiesMovement.RotateOnHit();
     }
 }
Esempio n. 6
0
    private void DamageEnemy(Collider other)
    {
        EnemyHealth eh = other.gameObject.GetComponent <EnemyHealth>();

        if (frostShots)
        {
            EnemiesMovement em = other.GetComponent <EnemiesMovement>();
            EnemyShoot      es = other.GetComponent <EnemyShoot>();
            if (em != null)
            {
                em.GotFrostAttacked(3f); //TEMP
            }
            if (es != null)
            {
                es.GotFrostAttacked(3f); //TEMP
            }
        }

        if (poisonShots)
        {
            eh.GetPoisoned(3f); //TEMP
        }
        if (fireShots)
        {
            eh.GetBurned(3f); //TEMP
        }
        if (!instantDeathChanceEnabled)
        {
            eh.HP -= damage;
        }
        else
        {
            int chanceToKill = Random.Range(0, 101);
            if (chanceToKill > 97)    //TEMP
            {
                eh.HP -= 10000000000; //TEMP
                Instantiate(instantDeathCanvas, transform.position, Quaternion.identity);
            }
            else
            {
                eh.HP -= damage;
            }
        }
    }
Esempio n. 7
0
    private EnemiesMovement em; //для летающего врага
    void Start()
    {
        anim     = GetComponent <Animator>();
        thisTr   = transform;
        playerTr = GameObject.FindGameObjectWithTag("Player").transform;
        GetComponent <Animator>().SetBool("shoot", true);

        if (shootType == ShootType.aimWithRicochet)
        {
            timer = Time.time; //выставляем таймер для прицеливания
            lineR = GetComponent <LineRenderer>();
            lineR.SetPosition(0, thisTr.position);
            lineR.SetPosition(1, playerTr.position);
        }
        else if (shootType == ShootType.flyingStraightShot)
        {
            em = GetComponent <EnemiesMovement>();
        }
    }