private void Start() { myAnimator = GetComponent <Animator>(); myPatrolmanScript = GetComponent <Patrolman>(); detectorEnemiesInAttackZone = GetComponent <DetectorEnemiesInAttackZone>(); myMovementScript = GetComponent <EnemiesMovement>(); }
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); } } }
private void Start() { myMovementScript = GetComponent <EnemiesMovement>(); currentAngle = -maxDeflectionAngle; isPlayerDetecterRayAngleIncreases = true; currentTimeInLoop = 0; timeOnRayLoopUpdate /= 2f; }
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); }
private void FlipIfDontKnowWhereAttackFrom() { if (!enemiesMovement) { enemiesMovement = GetComponent <EnemiesMovement>(); } if (enemiesMovement) { enemiesMovement.RotateOnHit(); } }
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; } } }
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>(); } }