public void SetTarget(Transform target) { player = target; RearviewCameraBehaviour.RequestRearviewOff(); if (target.CompareTag("Player")) { RearviewCameraBehaviour.RequestRearviewOn(); } }
// bird has been diving for set amount of time or hit the player private void ExitDive() { if (!attackHive) { RearviewCameraBehaviour.RequestRearviewOff(); } attackDelay = Random.Range(attackDelayMin, attackDelayMax); // back to timing how long the player is in range attackTimer = Time.time; attackDelay = Random.Range(attackDelayMin, attackDelayMax); attackHive = false; currState = BirdFlyingState.Returning; }
/////////////////////////////////////////////// //// Attacking State ////////////////////////// private void UpdateAttackState() { if (attackHive) { Debug.DrawLine(transform.position, hive.transform.position, Color.green); } else { Debug.DrawLine(transform.position, player.transform.position, Color.blue); } bool attackingPlayer = !attackHive && (distToPlayer <= minPlayerDistance); bool attackingHive = attackHive && (distToHive <= minHiveDistance); if (!attackingPlayer && !attackingHive || (Time.time - patrolStuckTimer) > 10f) { RearviewCameraBehaviour.RequestRearviewOff(); // attacking is done currState = WaspFlyingState.Patrolling; patrolStuckTimer = Time.time; } anim.SetInteger(AnimState, 1); Vector3 toTarget = (player.transform.position - transform.position); Transform lookAt = null; if (attackingPlayer) { toTarget = player.transform.position - transform.position; lookAt = player.transform; attackHive = false; } else if (attackingHive) { toTarget = hive.transform.position - transform.position; lookAt = hive.transform; attackHive = true; } if (lookAt != null) { MoveInDir(toTarget, attackSpeed); transform.LookAt(lookAt); } }
// This can be more fleshed out in future iterations of our game public void FinishSting(int score, int maxScore, GameObject target) { LevelManager lm = FindObjectOfType <LevelManager>(); EnemyBehaviour targetEB = target.GetComponent <EnemyBehaviour>(); if (targetEB == null) { targetEB = target.GetComponentInParent <EnemyBehaviour>(); } stinging = false; // killing the wasps can definitely be improved upon if (score > maxScore * .9) { Debug.Log("Option1"); lm.IncrementHealth(-minDamage); targetEB.EnemyDefeated(); } else if (score > maxScore * .6) { Debug.Log("Option2"); lm.IncrementHealth(-averageDamage); targetEB.EnemyDefeated(); } else if (score > maxScore * .4) { Debug.Log("Option3"); lm.IncrementHealth(-maxDamage); targetEB.EnemyDefeated(); } else { Debug.Log("Option4"); lm.IncrementHealth(-maxDamage); } stingIndicator.SetActive(false); RearviewCameraBehaviour.RequestRearviewOff(); FindObjectOfType <PlayerControl>().StartBuzzSFX(); }
private void OnDestroy() { RearviewCameraBehaviour.RequestRearviewOff(); }