Exemple #1
0
    // Use to process your families.
    protected override void onProcess(int familiesUpdateCount)
    {
        foreach (GameObject go in _triggeredGO)
        {
            //Récupérer les élements qui peuvent être en collision
            Triggered2D t2d = go.GetComponent <Triggered2D> ();

            foreach (GameObject target in t2d.Targets)
            {
                Leucocyte leucocyte = go.GetComponent <Leucocyte> ();
                HP        hp1       = target.GetComponent <HP>();
                Absorbeur absorbe   = target.GetComponent <Absorbeur> ();
                //Si l'élément n'est pas mort et que c'est un leucocyte et qu'il n'est pas un absorbeur
                if (hp1 != null && leucocyte != null && absorbe == null)
                {
                    //on lui rajoute endommager
                    Endommage endommage = go.GetComponent <Endommage> ();
                    Debug.Log(hp1.hp);
                    hp1.hp -= endommage.hpLost;

                    /*if (hp1.hp <= 0)
                     *      GameObjectManager.destroyGameObject (target);
                     */
                }
            }
        }
    }
    // Use to process your families.
    protected override void onProcess(int familiesUpdateCount)
    {
        //pour chaque élément absorbeur détecté
        foreach (GameObject go in _controllableGO)
        {
            Triggered2D t2d = go.GetComponent <Triggered2D> ();
            // Comme absorber diminue le HP on le récupére dans le fils de l'élément
            HP hp1 = go.gameObject.GetComponentInChildren <HP> ();
            //On récupére tous les élements en collision
            foreach (GameObject target in t2d.Targets)
            {
                //on vérifie que l'élément a côté n'a pas été déja absorbé
                IsAbsorbe isAbsorbe = target.GetComponent <IsAbsorbe> ();
                Absorbeur absorbeur = go.GetComponent <Absorbeur> ();
                // s'il est en train d'être absorbé
                if (isAbsorbe != null)
                {
                    continue;
                }
                // si l'élement n'est pas encore été absorbé, si c'est une toxine

                if (target.gameObject.CompareTag("toxine"))
                {
                    //on lui rajoute le compononent "isAbsorbe"
                    target.AddComponent <IsAbsorbe>();
                    Debug.Log("Absorbe : toxine " + go);
                    //on diminue le hp
                    hp1.hp -= absorbeur.hpLost;
                }
                // si l'élement n'est pas encore été absorbé, si c'est une dechet
                else if (target.gameObject.CompareTag("dechet"))
                {
                    Debug.Log("Absorbe : dechet " + go);
                    target.AddComponent <IsAbsorbe>();
                    hp1.hp -= absorbeur.hpLost;
                }
                // si l'élement n'est pas encore été absorbé, si c'est une bacterie
                else if (target.gameObject.CompareTag("bacterie"))
                {
                    Debug.Log("Absorbe");
                    target.AddComponent <IsAbsorbe>();
                    //target.gameObject.transform.GetChild(0).gameObject.AddComponent<IsAbsorbe>();
                    hp1.hp -= absorbeur.hpLost;
                }
                // si l'élement n'est pas encore été absorbé, si c'est un virus et qu'il n'est pas agglutiné
                else if (target.gameObject.CompareTag("virus") && target.GetComponent <Agglutinué>() != null)
                {
                    Debug.Log("Absorbe");
                    target.AddComponent <IsAbsorbe>();
                    target.gameObject.transform.GetChild(0).gameObject.AddComponent <IsAbsorbe>();
                    hp1.hp -= absorbeur.hpLost;
                }
            }
        }
    }