Exemple #1
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            PlayerCharacter2D pc = other.GetComponent <PlayerCharacter2D>();

            switch (PickupType)
            {
            case "Health":
                pc.SoinPerso(Valeur);
                break;

            case "Missile":
                pc.joueurStats.nbMissile += Valeur;
                if (pc.joueurStats.nbMissile > pc.joueurStats.nbMissileMax)
                {
                    pc.joueurStats.nbMissile = pc.joueurStats.nbMissileMax;
                }
                pc.UpdateMissileUI();
                break;

            default:
                break;
            }

            if (FindObjectOfType <AudioManager>())
            {
                FindObjectOfType <AudioManager>().Play("PickupSound");
            }
            Destroy(gameObject);
        }
    }
Exemple #2
0
    public void ItemDrop(Ennemis perso)
    {
        float result = UnityEngine.Random.Range(1, 100);

        if (result / 100 > 0.5f)
        {
            result = UnityEngine.Random.Range(1, 100);
            if (result / 100 > 0.5f)          //1-50: Missile, 51-100: Health
            {
                PlayerCharacter2D pc = FindObjectOfType <PlayerCharacter2D>();
                if (pc.HasUpgrade("Missile"))
                {
                    GameObject clone = Instantiate(itemPickupPrefab, perso.transform.position, perso.transform.rotation);
                    clone.GetComponent <PickupItem>().PickupType = "Missile";
                    clone.GetComponent <Animator>().Play("Missile");
                    clone.GetComponent <PickupItem>().Valeur = 5;
                    //Debug.Log("missile drop");
                }
            }
            else
            {
                //Debug.Log("health drop");
                GameObject clone = Instantiate(itemPickupPrefab, perso.transform.position, perso.transform.rotation);
                clone.GetComponent <PickupItem>().PickupType = "Health";
                clone.GetComponent <Animator>().Play("Health");
                clone.GetComponent <PickupItem>().Valeur = 10;
            }
        }
    }
Exemple #3
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.CompareTag("Player"))
        {
            if (pris)
            {
                return;
            }

            pris = true;

            //Desactive le collider pour empêcher le double pickup
            gameObject.GetComponent <CircleCollider2D>().enabled = false;

            Debug.Log("Get Upgrade");
            if (FindObjectOfType <AudioManager>() != null)
            {
                FindObjectOfType <AudioManager>().Play("ItemPickup");
            }

            PlayerCharacter2D pc = GameObject.FindGameObjectWithTag("Player").GetComponent <PlayerCharacter2D>();

            if (!pc.upgrading)
            {
                Debug.Log("entre ici");
                //pc.upgrading = true;
                Pickup(other);
                pc.upgrading = false;
            }
        }
    }
Exemple #4
0
    public void UpdateGUI(bool?on)
    {
        if (!missileUI.activeSelf)
        {
            missileUI.SetActive(true);
        }

        PlayerCharacter2D pc = FindObjectOfType <PlayerCharacter2D>();

        if (pc == null)
        {
            Debug.Log("Pas trouve le joueur en updatant le UI");
        }
        else
        {
            missileUI.GetComponentInChildren <TextMeshProUGUI>().text = pc.joueurStats.nbMissile + " / " + pc.joueurStats.nbMissileMax;
        }

        if (on == null)
        {
            return;
        }

        if ((bool)on)
        {
            missileUI.GetComponent <Image>().color = new Vector4(1, 1, 0, 1);
        }
        else
        {
            missileUI.GetComponent <Image>().color = new Vector4(1, 1, 0, 0.392f);
        }
    }
Exemple #5
0
    //  n'écrase plus le joueur
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.tag == "Player")
        {
            GameObject coll = collision.gameObject;

            //  désactive les controle
            PlayerCharacter2D p = coll.GetComponent <PlayerCharacter2D>();

            Rigidbody2D rbp = coll.GetComponent <Rigidbody2D>() as Rigidbody2D;
            rbp.collisionDetectionMode = CollisionDetectionMode2D.Continuous;

            if (p)
            {
                p.setEnableInput(true);
            }

            //  agrandir le joueur
            Sequence decrase = DOTween.Sequence();
            decrase.Append(coll.transform.DOScaleY(m_ScaleY, 0.2f));
            //decrase.Insert(0.0f, m_Player.transform.DOMoveY(m_Player.transform.position.y + 0.4f, 0.2f));

            decrase.Play();
        }
    }
Exemple #6
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        GameObject coll = other.gameObject;

        if (m_Player == coll)
        {
            //  désactive les controle
            PlayerCharacter2D p = coll.GetComponent <PlayerCharacter2D>();

            Rigidbody2D rbp = m_Player.GetComponent <Rigidbody2D>() as Rigidbody2D;
            rbp.collisionDetectionMode = CollisionDetectionMode2D.Discrete;
            //rbp.constraints = RigidbodyConstraints2D.FreezeAll;

            if (p)
            {
                p.setEnableInput(false);
            }

            //  rapetisse le joueur
            Sequence ecrase = DOTween.Sequence();

            ecrase.Append(m_Player.transform.DOScaleY(1.0f, 0.2f));
            ecrase.Insert(0.0f, m_Player.transform.DOMoveY(m_Player.transform.position.y - 0.4f, 0.2f));
            ecrase.Play();
            //Invoke("p.setEnableInput(false)", m_MovingRate + 0.1f);
        }
    }
Exemple #7
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.tag == "Player")
     {
         PlayerCharacter2D p = collision.GetComponent <PlayerCharacter2D>();
         GameMaster.KillJoueur(p);
     }
 }
Exemple #8
0
    public IEnumerator RespawnPlayer(PlayerCharacter2D perso)
    {
        //TODO: Ajout d'un son pour l'attente
        yield return(new WaitForSeconds(spawnDelay));

        if (FindObjectOfType <AudioManager>() != null)
        {
            FindObjectOfType <AudioManager>().Play("RespawnPlayer");
        }

        perso.gameObject.transform.position = spawnPoint.position;
        perso.gameObject.transform.rotation = spawnPoint.rotation;
        perso.SoinPerso(999999);

        //Detache le grappin si on meurt en etant attache
        if (perso.GetComponent <GrappleBeam>().isGrappleAttached)
        {
            perso.GetComponent <GrappleBeam>().UseGrapple();
        }

        //  si le joueur à été écrasé avant de mourir, réactive les controles et remet le scale comme il faut;
        if (perso.gameObject.transform.lossyScale.y < 1.5f)
        {
            Rigidbody2D rbp = perso.GetComponent <Rigidbody2D>() as Rigidbody2D;
            rbp.collisionDetectionMode = CollisionDetectionMode2D.Continuous;

            perso.setEnableInput(true);

            perso.gameObject.transform.localScale = new Vector3(5.0f, 5.0f, 1.0f);
        }

        perso.gameObject.SetActive(true);

        if (playerPrefab != null)
        {
            //Instantiate(playerPrefab, spawnPoint.position, Quaternion.identity);
            if (spawnPrefab != null)
            {
                Transform clone = Instantiate(spawnPrefab, spawnPoint.position, spawnPoint.rotation) as Transform;
                Destroy(clone.gameObject, 3f);
            }
        }

        perso.joueurStats.immortel = false;
    }
Exemple #9
0
    IEnumerator SearchForPlayer()
    {
        GameObject sResult = GameObject.FindGameObjectWithTag("Player");

        if (sResult == null)
        {
            yield return(new WaitForSeconds(0.5f));

            StartCoroutine(SearchForPlayer());
        }
        else
        {
            en = sResult.GetComponent <PlayerCharacter2D>() as PlayerCharacter2D;
            searchingForPlayer = false;
            StartCoroutine(CheckDistance());
            yield break;
        }
    }
Exemple #10
0
    public void Explosion(int dmg, PlayerCharacter2D pl, float fireRate)
    {
        if (CanAttack)
        {
            if (effetAttaquePrefab != null)
            {
                Transform      clone = Instantiate(effetAttaquePrefab, firePoint.position, firePoint.rotation) as Transform;
                ShockWaveForce wave  = clone.GetComponent <ShockWaveForce>();
                wave.radius = statAttaque.eRadius * 1.3f;

                Destroy(clone.gameObject, 1f);
            }

            attaqueCooldown = fireRate;

            if (Rigidbody2DExt.AddExplosionForce(pl.GetComponent <Rigidbody2D>(), statAttaque.ePower, firePoint.position, statAttaque.eRadius, statAttaque.upwardsModifier))
            {
                pl.DommagePerso(dmg);
            }
        }
    }
Exemple #11
0
    public void Contact(int dmg, PlayerCharacter2D pl, float f)
    {
        //Rigidbody2DExt.AddExplosionForce(pl.GetComponent<Rigidbody2D>(), f, firePoint.position, r, upM, ForceMode2D.Force);
        var dir = my_transform.position - pl.transform.position;
        //Debug.Log(dir);
        Vector3 baseForce = -dir.normalized * f;

        baseForce.x *= 2f;
        //baseForce.x += Mathf.Sign(baseForce.x)*10f;

        if (dir.y > -0.9f && dir.y < 0.9f)
        {
            Vector2 upp = Vector2.up * 10f;
            pl.GetComponent <Rigidbody2D>().AddForce(upp, ForceMode2D.Impulse);
            baseForce.y = 0;
        }

        //Debug.Log(baseForce);
        pl.GetComponent <Rigidbody2D>().AddForce(baseForce);
        pl.DommagePerso(dmg);
    }
Exemple #12
0
    //  si le joueur est détecter, l'écrase et lui fait des DMG
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Player")
        {
            GameObject coll = collision.gameObject;

            if (m_getScale == false)
            {
                m_ScaleY   = coll.transform.lossyScale.y;
                m_getScale = true;
            }

            if (dommageHit == (dommageHit | (1 << coll.layer)))
            {
                Personnages en = coll.GetComponent <Personnages>() as Personnages;
                en.DommagePerso(m_dmg);
            }

            if (m_descend == false)
            {
                //  désactive les controle
                PlayerCharacter2D p = coll.GetComponent <PlayerCharacter2D>();

                Rigidbody2D rbp = coll.GetComponent <Rigidbody2D>() as Rigidbody2D;
                rbp.collisionDetectionMode = CollisionDetectionMode2D.Discrete;

                if (p)
                {
                    p.setEnableInput(false);
                }

                //  rapetisse le joueur
                Sequence ecrase = DOTween.Sequence();

                ecrase.Append(coll.transform.DOScaleY(1.0f, 0.2f));
                ecrase.Insert(0.0f, coll.transform.DOMoveY(coll.transform.position.y - 0.4f, 0.2f));
                ecrase.Play();
            }
        }
    }
Exemple #13
0
 public static void KillJoueur(PlayerCharacter2D perso)
 {
     perso.gameObject.SetActive(false);
     //instance.RespawnPlayer(perso);
     instance.StartCoroutine(instance.RespawnPlayer(perso));
 }
Exemple #14
0
 private void DestroyPlayer(PlayerCharacter2D perso)
 {
     Destroy(perso.gameObject);
 }
    private bool upgradeCheatFlag = false; //garde un check pcq si on active tous les upgrades plusieurs fois, ca risque de faire n'importe quoi


    private void Awake()
    {
        m_Character = GetComponent <PlayerCharacter2D>();
    }
Exemple #16
0
    void Pickup(Collider2D player)
    {
        //fait de quoi sur le player
        GameObject        monjoueur = GameObject.FindGameObjectWithTag("Player");
        PlayerCharacter2D pc        = (PlayerCharacter2D)monjoueur.GetComponent(typeof(PlayerCharacter2D));

        if (pc == null)
        {
            Debug.Log("Player not found");
            return;
        }

        if (pc.upgrading)
        {
            return;
        }
        else
        {
            pc.upgrading = true;
        }

        //pc.ToggleUpgrade(UpgradeName);

        if (!pc.HasUpgrade(UpgradeName) || (UpgradeName == "Missile" && pc.HasUpgrade("Missile")))
        {
            switch (UpgradeName)
            {
            case "MorphBall":
                pc.ToggleUpgrade(UpgradeName);
                pc.gameObject.AddComponent(typeof(MorphBall));
                break;

            case "MorphBomb":
                pc.ToggleUpgrade(UpgradeName);
                break;

            case "GrappleBeam":
                pc.ToggleUpgrade(UpgradeName);
                pc.AddWeapon("GrappleBeam");
                pc.gameObject.GetComponent <GrappleBeam>().enabled = true;
                pc.gameObject.GetComponent <GrappleBeam>().UpdateGUI(false);
                break;

            case "Missile":
                pc.joueurStats.nbMissileMax += 5;
                pc.joueurStats.nbMissile     = pc.joueurStats.nbMissileMax;
                if (pc.HasUpgrade("Missile"))
                {
                    pc.UpdateMissileUI();
                }
                else
                {
                    pc.ToggleUpgrade(UpgradeName);
                    pc.AddWeapon("Missile");
                }
                Debug.Log("missile max 1: " + pc.joueurStats.nbMissileMax);
                break;

            case "MissileExpansion":
                pc.joueurStats.nbMissileMax += 5;
                pc.joueurStats.nbMissile     = pc.joueurStats.nbMissileMax;
                pc.UpdateMissileUI();
                break;

            case "HealthExpansion":
                pc.joueurStats.vieMax += 100;
                pc.joueurStats.vie     = pc.joueurStats.vieMax;
                pc.UpdateHealthBar();
                break;

            default:
                Debug.Log("Upgrade non spécifiée ou non reconnue");
                pc.gameObject.AddComponent(typeof(TestUpgradeBehavior));
                break;
            }

            gameObject.GetComponent <Animator>().Play("Disapear");
        }

        GetComponent <DialogueTrigger>().TriggerDialogue();

        Destroy(gameObject, 0.25f);
    }