Ejemplo n.º 1
0
    public static void KillEnnemi(Ennemis perso)
    {
        instance.ItemDrop(perso);

        //TODO: particule à la mort des ennemis
        Destroy(perso.gameObject);
    }
Ejemplo n.º 2
0
    //**** Activation/ Desactivation par rapport à la distance ****//

    //  reset les pv de chacune de ces partie à la mort du joueur
    public void resetPV()
    {
        m_Player = null;

        foreach (Transform item in m_lstEnnemis)
        {
            Ennemis pasFin = item.GetComponent <Ennemis>() as Ennemis;
            pasFin.ennemiStats.vie = pasFin.ennemiStats.vieMax;
            item.GetComponent <SpriteMask>().alphaCutoff = 1.0f;
        }

        List <GameObject> lstLaser = new List <GameObject>(GameObject.FindGameObjectsWithTag("laserBoss"));

        foreach (GameObject las in lstLaser)
        {
            las.GetComponent <laser>().Disparait();
        }
        //FindObjectOfType<AudioManager>().Mute("LaserBossMilieu");

        Sequence retour = DOTween.Sequence();

        retour.AppendCallback(() =>
        {
            m_CurrentNode = m_StartNode.m_VoisinGauche;
            jumpRot(false);
        }).SetDelay(0.9f);
        retour.AppendCallback(() =>
        {
            enabled = false;
        });
        retour.Play();
    }
Ejemplo n.º 3
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;
            }
        }
    }
Ejemplo n.º 4
0
    public void CheatLifeBoss()
    {
        for (int i = 0; i < m_lstEnnemis.Count; i++)
        {
            if (m_lstEnnemis[i] == null)
            {
                continue;
            }

            Ennemis pasFin = m_lstEnnemis[i].GetComponent <Ennemis>() as Ennemis;
            pasFin.ennemiStats.vie = 1;
        }
    }
Ejemplo n.º 5
0
    public void SpawnEnnemi()
    {
        if (thisEnnemi != null)
        {
            thisEnnemi.transform.position = tr.position;
            thisEnnemi.SoinPerso(999999);
        }
        else if (ennemi != null)
        {
            thisEnnemi = Instantiate(ennemi, tr.position, tr.rotation).GetComponent <Ennemis>();
        }

        if (thisEnnemi != null && thisEnnemi.enabled)
        {
            SpawnParticule();
        }
    }
Ejemplo n.º 6
0
    // remet le boss à son état initiale full vie quand le joueur meurt
    public void resetBoss()
    {
        Ennemis pasFin = m_Core.GetComponent <Ennemis>() as Ennemis;

        pasFin.SoinPerso(1000);
        m_Core.GetComponent <SpriteMask>().alphaCutoff = 1.0f;

        List <GameObject> lstLaser = new List <GameObject>(GameObject.FindGameObjectsWithTag("laserBoss"));

        foreach (GameObject las in lstLaser)
        {
            las.GetComponent <laser>().Disparait();
        }

        transform.rotation = Quaternion.Euler(new Vector3(0.0f, 0.0f, 0.0f));

        m_shootState = false;
        m_TPState    = false;
        m_currentTP  = m_nbTP;

        enabled = false;
    }
Ejemplo n.º 7
0
    private void Start()
    {
        myTransform = transform;
        ennemis     = GetComponent <Ennemis>() as Ennemis;
        seeker      = GetComponent <Seeker>() as Seeker;

        if (target == null)
        {
            if (!searchingForPlayer)
            {
                searchingForPlayer = true;
                StartCoroutine(SearchForPlayer());
            }
            return;
        }

        //Commencer un nouveau chemin vers la position de la cible, retourne le resultat a la methode OnPathComplete
        //TODO: !Ne pas chercher le chemin quand le joueur est trops loin
        seeker.StartPath(myTransform.position, target.position, OnPathComplete);

        StartCoroutine(UpdatePath());
    }
Ejemplo n.º 8
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        Ennemis ennemi = target as Ennemis;

        //***** Vie *****//
        EditorGUILayout.Space();
        ennemi.showVie = EditorGUILayout.Foldout(ennemi.showVie, "Vie", true);
        if (ennemi.showVie)
        {
            EditorGUI.indentLevel++;
            EditorGUILayout.PropertyField(immortel, new GUIContent("Immortel"));
            if (!immortel.boolValue)
            {
                EditorGUILayout.IntSlider(vie, 0, vieMax.intValue, "Vie courante");
                ProgressBar((float)vie.intValue / (float)vieMax.intValue, "Vie");

                EditorGUI.indentLevel++;
                EditorGUILayout.PropertyField(vieMax, new GUIContent("Vie Max"));
                EditorGUI.indentLevel--;
            }
            EditorGUI.indentLevel--;
        }

        //****** Les dommages ******//
        EditorGUILayout.Space();
        ennemi.showDommage = EditorGUILayout.Foldout(ennemi.showDommage, "Dommages", true);
        if (ennemi.showDommage)
        {
            //***** Contact *****//
            EditorGUI.indentLevel++;
            EditorGUILayout.PropertyField(contact, new GUIContent("Contact"));
            if (contact.boolValue)
            {
                EditorGUI.indentLevel++;
                EditorGUILayout.IntSlider(dmgContact, 0, 100, "Dommage Contact");
                ProgressBar(dmgContact.intValue / 100f, "Dommage");

                ennemi.showContactDommage = EditorGUILayout.Foldout(ennemi.showContactDommage, "Contacte Explosion", true);
                if (ennemi.showContactDommage)
                {
                    EditorGUILayout.PropertyField(ePower, new GUIContent("Force répulsion"));
                    //EditorGUILayout.PropertyField(eRadius, new GUIContent("Rayon répultion"));
                    //EditorGUILayout.PropertyField(upwardsModifier, new GUIContent("Upwards Modifier"));

                    EditorGUILayout.PropertyField(glace, new GUIContent("Glace"));
                    EditorGUILayout.PropertyField(poison, new GUIContent("Poison"));
                    EditorGUILayout.PropertyField(foudre, new GUIContent("Foudre"));
                }
                EditorGUI.indentLevel--;
                EditorGUILayout.Space();
            }

            //***** Attaque *****//
            EditorGUILayout.PropertyField(attaque, new GUIContent("Attaque"));
            Ennemis.typeAttaque tAttaque = (Ennemis.typeAttaque)attaque.enumValueIndex;

            if (tAttaque != Ennemis.typeAttaque.Rien)
            {
                EditorGUI.indentLevel++;
                EditorGUILayout.IntSlider(dmgAttaque, 0, 100, "Dommage Attaque");
                ProgressBar(dmgAttaque.intValue / 100f, "Dommage");
                EditorGUI.indentLevel--;
            }

            switch (tAttaque)
            {
            case Ennemis.typeAttaque.Rien:
                break;

            case Ennemis.typeAttaque.Explosion:
                EditorGUI.indentLevel++;
                EditorGUILayout.PropertyField(fireRate, new GUIContent("Fire Rate"));
                EditorGUI.indentLevel--;
                break;

            case Ennemis.typeAttaque.Tirer:
                EditorGUI.indentLevel++;
                EditorGUILayout.PropertyField(fireRate, new GUIContent("Fire Rate"));
                EditorGUILayout.PropertyField(tirerSurJoueur, new GUIContent("Tirer sur le joueur"));
                EditorGUI.indentLevel--;
                break;

            default:
                break;
            }

            EditorGUI.indentLevel--;
        }

        //***** Deplacement *****//
        EditorGUILayout.Space();
        ennemi.showMouvement = EditorGUILayout.Foldout(ennemi.showMouvement, "Mouvement", true);
        if (ennemi.showMouvement)
        {
            EditorGUI.indentLevel++;
            EditorGUILayout.PropertyField(deplacement, new GUIContent("Deplacement"));
            Ennemis.typeDeplac tDeplacement = (Ennemis.typeDeplac)deplacement.enumValueIndex;
            switch (tDeplacement)
            {
            case Ennemis.typeDeplac.Voler:
            case Ennemis.typeDeplac.Immobile:
                break;

            default:
                EditorGUILayout.PropertyField(hauteurSaut, new GUIContent("Force du Saut"));
                break;
            }

            if (tDeplacement != Ennemis.typeDeplac.Immobile)
            {
                EditorGUILayout.PropertyField(speed, new GUIContent("Vitesse"));
                EditorGUILayout.PropertyField(maxSpeed, new GUIContent("maxSpeed"));
                EditorGUILayout.PropertyField(fMode, new GUIContent("FMode"));
            }
            EditorGUILayout.PropertyField(facingRight, new GUIContent("Facing Right"));
            EditorGUI.indentLevel--;
        }

        EditorGUILayout.Space();
        ennemi.showElements = EditorGUILayout.Foldout(ennemi.showElements, "Éléments", true);
        if (ennemi.showElements)
        {
            EditorGUILayout.PropertyField(resitGlace, new GUIContent("Resite Glace"));
            EditorGUILayout.PropertyField(resitPoison, new GUIContent("Resite Poison"));
            EditorGUILayout.PropertyField(resitFoudre, new GUIContent("Resite Foudre"));

            EditorGUILayout.PropertyField(glacer, new GUIContent("Ralentit"));
            EditorGUILayout.PropertyField(empoisoner, new GUIContent("Empoisoné"));
            EditorGUILayout.PropertyField(paralyse, new GUIContent("Paralysé"));
        }
        serializedObject.ApplyModifiedProperties();
    }
Ejemplo n.º 9
0
    // Update is called once per frame
    void Update()
    {
        for (int i = 0; i < m_lstEnnemis.Count; i++)
        {
            if (m_lstEnnemis[i] == null)
            {
                m_lstEnnemis.RemoveAt(i);
            }
        }

        //  Paramètrage pour la 2e phase
        if (m_lstEnnemis.Count == 1 && m_Phase2 == false)
        {
            m_Phase2 = true;

            Ennemis core = m_Core.GetComponent <Ennemis>() as Ennemis;
            core.ennemiStats.immortel = false;
            core.enabled = true;


            bc.enabled   = false;
            m_MovingRate = m_MovingRate2;

            Sequence sdown = DOTween.Sequence();

            sdown.Append(m_shield.DOScale(0.1f, 2.0f).SetEase(Ease.InBounce));
            sdown.InsertCallback(0.5f, () =>
            {
                Transform eff = m_shield.GetChild(1);
                eff.gameObject.SetActive(false);

                FindObjectOfType <AudioManager>().Play("ShieldBossDown");
            });
            sdown.AppendCallback(() =>
            {
                m_shield.gameObject.SetActive(false);
            });
        }

        if (m_lstEnnemis.Count == 0)
        {
            //  le boss est mort

            GameObject ex = Instantiate(m_ExplosionEffect, transform.position, transform.rotation);
            FindObjectOfType <AudioManager>().Play("ExplosionBoss");

            Sequence bossKill = DOTween.Sequence();
            bossKill.SetDelay(2.0f);
            bossKill.AppendCallback(() =>
            {
                Destroy(ex);
            });

            List <GameObject> lstLaser = new List <GameObject>(GameObject.FindGameObjectsWithTag("laserBoss"));
            foreach (GameObject las in lstLaser)
            {
                las.GetComponent <laser>().Disparait();
            }
            //FindObjectOfType<AudioManager>().Mute("LaserBossMilieu");

            GameMaster.KillBoss(this);
        }

        /*if (m_Player == null)
         * {
         *  if (!searchingForPlayer)
         *  {
         *      searchingForPlayer = true;
         *      StartCoroutine(SearchForPlayer());
         *  }
         * }*/

        //  ajustement du boxCollider2D pour qu'il écrase que si le joueur est en dessous
        //  Quelque soit l'angle
        if (m_Phase2 == false)
        {
            int angle = (int)tr.rotation.eulerAngles.z;

            if (angle > 320 || angle < 40)
            {
                bc.offset = new Vector2(0.0f, -1.1f);
                bc.size   = new Vector2(2.0f, 0.6f);
            }
            else if (angle > 50 && angle < 130)
            {
                bc.offset = new Vector2(-1.1f, 0.0f);
                bc.size   = new Vector2(0.6f, 2.0f);
            }
            else if (angle > 140 && angle < 220)
            {
                bc.offset = new Vector2(0.0f, 1.1f);
                bc.size   = new Vector2(2.0f, 0.6f);
            }
            else if (angle > 230 && angle < 310)
            {
                bc.offset = new Vector2(1.1f, 0.0f);
                bc.size   = new Vector2(0.6f, 2.0f);
            }
        }
    }