Example #1
0
    void newWave()
    {
        Debug.Log("new totem wave !");
        totemWave++;

        if (totemWave > waves.Length)
        {
            finalBoss();
        }
        else
        {
            for (int i = 0; i < waves[totemWave].repartition.Length; i++)
            {
                for (int k = 0; k < waves[totemWave].repartition[i]; k++)
                {
                    //determine if sticky or not
                    bool sticky = false;
                    if (waves[totemWave].sticky > 0)
                    {
                        if (waves[totemWave].good + waves[totemWave].bad - i > waves[totemWave].sticky)
                        {
                            sticky = true;
                            waves[totemWave].sticky--;
                        }
                        else
                        {
                            sticky = Random.Range(0, waves[totemWave].good + waves[totemWave].bad) < waves[totemWave].sticky ? true : false;
                        }
                    }

                    //determine if we pick a good or bad one
                    bool polarity = false;
                    if (waves[totemWave].good > 0)
                    {
                        polarity = Random.Range(0, 1) > 0.5 ? false : true;
                        if (polarity)
                        {
                            waves[totemWave].good--;
                        }
                    }

                    //determine angle
                    float angle = (i * 360 / waves[totemWave].repartition.Length) + (k * 13);

                    TotemObject totem = new TotemObject(firePos.position, i, angle, polarity, sticky);

                    spawnTotem(totem);
                }
            }
        }
    }
Example #2
0
    void spawnTotem(TotemObject totem)
    {
        // TotemObject totem = new TotemObject(firePos.position, i, false);
        GameObject Totem;

        if (totem.polarity)
        {
            Totem = Instantiate(totem_good, totem.position, totem.rotation);
        }
        else
        {
            Totem = Instantiate(totem_bad, totem.position, totem.rotation);
        }

        Totem.GetComponent <TotemInstance>().angle    = totem.angle;
        Totem.GetComponent <TotemInstance>().radius   = totem.radius;
        Totem.GetComponent <TotemInstance>().id       = totem.id;
        Totem.GetComponent <TotemInstance>().polarity = totem.polarity;

        gameManager.addTotemToList(totem);

        // Debug.Log(totemsAlive.Count);
    }
Example #3
0
 public static void addTotemToList(TotemObject totem)
 {
     totemsAlive.Add(totem);
 }