예제 #1
0
    DefenseWall GetDefenseWall(DIRECTION dir)
    {
        DefenseWall wallNodes = null;

        foreach (DefenseWall df in defenses)
        {
            if (df.direction == dir)
            {
                wallNodes = df;
            }
        }

        return(wallNodes);
    }
예제 #2
0
    void CalculateOutDFLists()
    {
        // wave 3
        DefenseWall pos1 = GetDefenseWall(DIRECTION.NORTH);
        DefenseWall pos2 = GetDefenseWall(DIRECTION.SOUTH);

        wave3Nodes = new DefenseNode[8];
        int counter = 0;

        foreach (DefenseNode n in pos1.defenseNodes)
        {
            wave3Nodes[counter] = n;
            counter++;
        }
        foreach (DefenseNode n in pos2.defenseNodes)
        {
            wave3Nodes[counter] = n;
            counter++;
        }

        counter = 0;

        /* wave 4 */

        pos1       = GetDefenseWall(DIRECTION.WEST);
        pos2       = GetDefenseWall(DIRECTION.EAST);
        wave4Nodes = new DefenseNode[8];
        counter    = 0;
        foreach (DefenseNode n in pos1.defenseNodes)
        {
            wave4Nodes[counter] = n;
            counter++;
        }
        foreach (DefenseNode n in pos2.defenseNodes)
        {
            wave4Nodes[counter] = n;
            counter++;
        }

        counter = 0;

        //wave 5+

        pos1 = GetDefenseWall(DIRECTION.NORTH);
        pos2 = GetDefenseWall(DIRECTION.SOUTH);
        DefenseWall pos3 = GetDefenseWall(DIRECTION.WEST);
        DefenseWall pos4 = GetDefenseWall(DIRECTION.EAST);

        wave5AndUpNodes = new DefenseNode[16];

        foreach (DefenseNode n in pos1.defenseNodes)
        {
            wave5AndUpNodes[counter] = n;
            counter++;
        }
        foreach (DefenseNode n in pos2.defenseNodes)
        {
            wave5AndUpNodes[counter] = n;
            counter++;
        }
        foreach (DefenseNode n in pos3.defenseNodes)
        {
            wave5AndUpNodes[counter] = n;
            counter++;
        }
        foreach (DefenseNode n in pos4.defenseNodes)
        {
            wave5AndUpNodes[counter] = n;
            counter++;
        }
    }
예제 #3
0
    public void UpdateDefensePoints()
    {
        if (AreMovingToDFPoints == false && GameManager.GetBreakTimeRemaining() < 10.0f && GameManager.InBreakTime())
        {
            this.UpdateSurvivorList();
            this.ClearDefensePoints();
            currWave = GameManager.GetCurrentWaveNumber() + 1;

            if (currWave == 1)
            {
                //north
                DefenseWall pos = GetDefenseWall(DIRECTION.NORTH);
                SetUpDefensePosition(pos.defenseNodes);
            }
            if (currWave == 2)
            {
                //south
                DefenseWall pos = GetDefenseWall(DIRECTION.SOUTH);
                SetUpDefensePosition(pos.defenseNodes);
            }
            else if (currWave == 3)
            {
                //north, south
                //DefenseWall pos1 = GetDefenseWall(DIRECTION.NORTH);
                //DefenseWall pos2 = GetDefenseWall(DIRECTION.SOUTH);



                SetUpDefensePosition(wave3Nodes);
                //SetUpDefensePosition(pos2);
            }
            else if (currWave == 4)
            {
                //north, south, east, west
                //DefenseWall pos1 = GetDefenseWall(DIRECTION.NORTH);
                //DefenseWall pos2 = GetDefenseWall(DIRECTION.SOUTH);
                //DefenseWall pos3 = GetDefenseWall(DIRECTION.WEST);
                //DefenseWall pos4 = GetDefenseWall(DIRECTION.EAST);
                //
                //SetUpDefensePosition(pos1);
                //SetUpDefensePosition(pos2);
                //SetUpDefensePosition(pos3);
                SetUpDefensePosition(wave3Nodes);
            }
            else if (currWave == 5)
            {
                SetUpDefensePosition(wave4Nodes);
            }
            else if (currWave > 5)
            {
                SetUpDefensePosition(wave5AndUpNodes);
            }

            /*else if (currWave > 4)
             * {
             *  //north, south, east, west
             *  DefenseWall pos1 = GetDefenseWall(DIRECTION.NORTH);
             *  DefenseWall pos2 = GetDefenseWall(DIRECTION.SOUTH);
             *  DefenseWall pos3 = GetDefenseWall(DIRECTION.WEST);
             *  DefenseWall pos4 = GetDefenseWall(DIRECTION.EAST);
             *
             *  SetUpDefensePosition(pos1);
             *  SetUpDefensePosition(pos2);
             *  SetUpDefensePosition(pos3);
             *  SetUpDefensePosition(pos4);
             * }*/

            AreMovingToDFPoints = true;
        }
        else if (GameManager.InBreakTime() == false)
        {
            AreMovingToDFPoints = false;
        }

        Invoke("UpdateDefensePoints", 4.0f);
    }