Example #1
0
    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);
        }
    }
Example #2
0
    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));
            }
        }
    }
Example #3
0
    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);
    }
Example #5
0
    //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;
                }
            }
        }
    }
Example #6
0
 private void Awake()
 {
     enemyStat     = GetComponent <Enemy_Stat>();
     enemyMovement = GetComponent <Enemy_Movement>();
     target        = FindObjectOfType <Player_Stat>().transform;
 }