void BoardShip() { isBoarding = false; if (boardingShip != null) { this.boardingShip.StopAllCoroutines(); } //On attribue l'argent en fonction du type de bateau ennemie if (boardingShip.enemySize == EnemySize.Small) { PlayerInstance.playerCash += Static_Resources.SmallBoatValue; this.gameObject.GetComponent <Player_Movemement>().enabled = true; Destroy(boardingShip.gameObject); boardingShip = null; } else if (boardingShip.enemySize == EnemySize.Big) { SceneManager.LoadScene("BoatScene", LoadSceneMode.Additive); Scene boatScene = SceneManager.GetSceneByName("BoatScene"); SceneManager.sceneUnloaded += sceneUnloaded; ChangeGameobjectState(false); } }
private void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.CompareTag("Enemy")) { Enemy_Stat stat = col.gameObject.GetComponent <Enemy_Stat>(); switch (stat.enemySize) { case EnemySize.Small: stat.TakeDamage(15); if (canCollisionDamage) { StartCoroutine(TakeCollisionDamage(5)); } break; case EnemySize.Big: stat.TakeDamage(5); if (canCollisionDamage) { StartCoroutine(TakeCollisionDamage(10)); } break; } } else if (col.gameObject.CompareTag("Rock")) { lastTimeForwardPressed = 0; if (canCollisionDamage) { StartCoroutine(TakeCollisionDamage(15)); } } }
private void sceneUnloaded(Scene p_scene) { if (this == null) { return; } if (boardingShip != null) { Destroy(boardingShip.gameObject); } boardingShip = null; ChangeGameobjectState(true); }
private void Awake() { enemyStat = GetComponent <Enemy_Stat>(); target = FindObjectOfType <Player_Stat>(); rb = GetComponent <Rigidbody2D>(); if (rb == null) { rb = gameObject.AddComponent <Rigidbody2D>(); } rb.isKinematic = false; rb.gravityScale = 0; rangeAggro = (enemyStat.enemySize == EnemySize.Small) ? Random.Range(20, 30) : Random.Range(15, 25); }
//Methode qui obtient le bateau qui se stue dans le radius du bateau pour l'aborder void GetBoardableShip() { //On obtient le nombre d'ennemies et leur collider dans une liste Collider2D[] colliders = Physics2D.OverlapCircleAll(transform.position, BoardingRadius); foreach (var item in colliders) { if (item.CompareTag("Enemy")) { Enemy_Stat stats = item.GetComponent <Enemy_Stat>(); if (boardingShip != null) { return; } if (stats.isDying) { isBoarding = true; boardingShip = stats; if (boardingShip.enemySize == EnemySize.Big) { this.boardingTime = 0; } else if (boardingShip.enemySize == EnemySize.Small) { this.boardingTime = 5; SoundManager.Play("Abordage", Vector3.zero); } this.gameObject.GetComponent <Player_Movemement>().enabled = false; } } } }
private void Awake() { enemyStat = GetComponent <Enemy_Stat>(); enemyMovement = GetComponent <Enemy_Movement>(); target = FindObjectOfType <Player_Stat>().transform; }