Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        //Vérifie pour éviter les bugs
        if (joueurMain.isDead == false && GameManager.singleton.isPaused == false)
        {
            if (joueurMain.isThisPlayersTurn && joueurMain.isAttacking == false)
            {
                //Crée une liste pour le ciblage de l'attaque 4
                List <GameObject> liste = new List <GameObject>
                {
                    cercleHeal,
                    cercleLent,
                    cerclePoison
                };
                //Call "L'update" de "JoueurAttaque"
                joueurAttaques.AttaqueUpdate(listeTypesAttaque, liste);

                //--------------------------------
                //Section des attaques. Le getTimerJoueur() est pour s'assurer que le joueur ait assez de temps pour payer l'attaque
                //---------------------------------

                if (joueurMain.moveSelected != 0)
                {
                    if (Input.GetMouseButtonDown(0))
                    {
                        if (joueurMain.moveSelected == 1 && GameManager.singleton.getTimerJoueur() > 3 * joueurMain.puissanceSlow)
                        {
                            RaycastHit hit;
                            if (Physics.Raycast(joueurMain.camRay, out hit, 100, joueurMain.teleportLayer))
                            {
                                joueurAttaques.resetAttackSelected();
                                joueurMain.isAttacking = true;
                                joueurMain.animationJoueur.SetTrigger("areaAttack");
                                StartCoroutine(CurseSlow(hit));
                            }
                        }
                        else if (joueurMain.moveSelected == 2 && GameManager.singleton.getTimerJoueur() > 3 * joueurMain.puissanceSlow)
                        {
                            RaycastHit hit;

                            if (Physics.Raycast(joueurMain.camRay, out hit, 100, joueurMain.teleportLayer))
                            {
                                joueurAttaques.resetAttackSelected();
                                joueurMain.isAttacking = true;
                                joueurMain.animationJoueur.SetTrigger("areaAttack");
                                StartCoroutine(CursePoison(hit));
                            }
                        }
                        else if (joueurMain.moveSelected == 3 && GameManager.singleton.getTimerJoueur() > 2 * joueurMain.puissanceSlow)
                        {
                            RaycastHit hit;
                            if (Physics.Raycast(joueurMain.camRay, out hit, 100, joueurMain.teleportLayer))
                            {
                                joueurAttaques.resetAttackSelected();
                                joueurMain.isAttacking = true;
                                joueurMain.animationJoueur.SetTrigger("areaAttack");
                                StartCoroutine(HealCircle(hit));
                            }
                        }
                        else if (joueurMain.moveSelected == 4 && GameManager.singleton.getTimerJoueur() > 6 * joueurMain.puissanceSlow)
                        {
                            joueurAttaques.resetAttackSelected();
                            joueurMain.isAttacking = true;
                            joueurMain.animationJoueur.SetTrigger("areaAttack");
                            StartCoroutine(ExplosionCircle());
                        }
                    }
                }
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        //Vérifie pour éviter les bugs
        if (joueurMain.isDead == false && GameManager.singleton.isPaused == false)
        {
            if (joueurMain.isThisPlayersTurn && joueurMain.isAttacking == false)
            {
                //Call "L'update" de "JoueurAttaque"
                joueurAttaques.AttaqueUpdate(listeTypesAttaque, null);

                //--------------------------------
                //Section des attaques. Le getTimerJoueur() est pour s'assurer que le joueur ait assez de temps pour payer l'attaque
                //---------------------------------

                if (joueurMain.moveSelected != 0)
                {
                    if (Input.GetMouseButtonDown(0))
                    {
                        if (joueurMain.moveSelected == 1 && GameManager.singleton.getTimerJoueur() > 2 * joueurMain.puissanceSlow)
                        {
                            joueurAttaques.resetAttackSelected();
                            joueurMain.isAttacking = true;
                            joueurMain.animationJoueur.SetTrigger("FireballAttack");
                            StartCoroutine(BouleDeFeu());
                        }
                        else if (joueurMain.moveSelected == 2 && GameManager.singleton.getTimerJoueur() > 4 * joueurMain.puissanceSlow)
                        {
                            joueurAttaques.resetAttackSelected();
                            joueurMain.isAttacking = true;
                            joueurMain.animationJoueur.SetTrigger("GroundAttack");
                            StartCoroutine(ConeDeFeu());
                        }
                        else if (joueurMain.moveSelected == 3 && GameManager.singleton.getTimerJoueur() > 3 * joueurMain.puissanceSlow)
                        {
                            RaycastHit hit;
                            if (Physics.Raycast(joueurMain.camRay, out hit, 500, joueurMain.teleportLayer))
                            {
                                joueurAttaques.resetAttackSelected();
                                joueurMain.isAttacking = true;
                                joueurMain.animationJoueur.SetTrigger("GroundAttack");
                                StartCoroutine(MurDeFeu(hit));
                            }
                        }
                        else if (joueurMain.moveSelected == 4 && GameManager.singleton.getTimerJoueur() > 0.2 * joueurMain.puissanceSlow)
                        {
                            RaycastHit hit;
                            if (Physics.Raycast(joueurMain.camRay, out hit, 500, joueurMain.teleportLayer))
                            {
                                joueurAttaques.resetAttackSelected();
                                int puissance = Mathf.RoundToInt(GameManager.singleton.getTimerJoueur() * 3);
                                GameManager.singleton.StartAttack(GameManager.singleton.getTimerJoueur() - 0.2f);
                                transform.position = hit.point;

                                GameObject explosion = Instantiate(explosionPrefab, transform.position, transform.rotation);
                                explosion.GetComponent <Attaque>().damage = puissance;
                                joueurMain.Enflammer(1);
                                GameManager.singleton.FinishAttack();

                                joueurMain.audioSource.PlayOneShot(audioZoom);
                            }
                        }
                    }
                }
            }
        }
    }