void DrawPowerUp()
 {
     for (int x = 0; x < profile.width; x++)
     {
         for (int y = 0; y < profile.height; y++)
         {
             if (DrawSlotButton(x, y, rect, profile))
             {
                 profile.SetPowerup(x, y, profile.GetPowerup(x, y) + 1);
                 if (profile.GetPowerup(x, y) > 3)
                 {
                     profile.SetPowerup(x, y, 0);
                 }
             }
         }
     }
     DrawWallPreview(rect, profile);
 }
示例#2
0
    static bool DrawSlotButton(int x, int y, Rect r, LevelProfile lp)
    {
        defaultColor = GUI.color;
        Color  color = defaultColor;
        string label = "";
        bool   btn   = false;

        if (!lp.GetSlot(x, y))
        {
            color *= transparentColor;
        }
        else
        {
            if (lp.GetBlock(x, y) == 0 && lp.GetChip(x, y) > 0)
            {
                if (lp.GetChip(x, y) > lp.chipCount)
                {
                    lp.SetChip(x, y, lp.chipCount);
                }
                color *= chipColor[lp.GetChip(x, y) - 1];
            }
            if (lp.GetBlock(x, y) == 0 && lp.GetChip(x, y) == -1 && lp.GetPowerup(x, y) == 0)
            {
                color *= unpressedColor;
            }
            if (lp.GetBlock(x, y) == 0 && lp.GetPowerup(x, y) > 0)
            {
                label += (label.Length == 0 ? "" : "\n");
                label += powerupLabel[lp.GetPowerup(x, y) - 1];
            }
            if (lp.GetBlock(x, y) > 0)
            {
                label += (label.Length == 0 ? "" : "\n") + "B:" + lp.GetBlock(x, y).ToString();
            }
            if (lp.GetJelly(x, y) > 0)
            {
                label += (label.Length == 0 ? "" : "\n") + "J:" + lp.GetJelly(x, y).ToString();
            }
        }
        GUI.color = color;
        btn       = GUI.Button(new Rect(r.xMin + x * (30 + slotOffect), r.yMin + y * (30 + slotOffect), 30, 30), label, slotStyle);
        GUI.color = defaultColor;
        return(btn);
    }
示例#3
0
 void DrawPowerUp()
 {
     help = "XB - Cross bomb." +
            "\nB - Simple bomb." +
            "\nCB - Color bomb." +
            "\n Slot with block can not contain any chip";
     for (int x = 0; x < profile.width; x++)
     {
         for (int y = 0; y < profile.height; y++)
         {
             if (DrawSlotButton(x, y, rect, profile))
             {
                 profile.SetPowerup(x, y, profile.GetPowerup(x, y) + 1);
                 if (profile.GetPowerup(x, y) > 3)
                 {
                     profile.SetPowerup(x, y, 0);
                 }
             }
         }
     }
     DrawWallPreview(rect, profile);
 }
    bool DrawSlotButton(int x, int y, Rect r, LevelProfile lp)
    {
        defaultColor = GUI.backgroundColor;
        Color  color = Color.white;
        string label = "";
        bool   btn   = false;
        int    block = lp.GetBlock(x, y);
        int    jelly = lp.GetJelly(x, y);
        int    chip  = lp.GetChip(x, y);

        if (!lp.GetSlot(x, y))
        {
            color *= 0;
        }
        else
        {
            if (block == 0)
            {
                if (chip == 9)
                {
                    color *= stoneColor;
                    lp.SetPowerup(x, y, 0);
                }
                else if (chip > 0)
                {
                    if (chip > lp.chipCount)
                    {
                        lp.SetChip(x, y, -1);
                    }
                    color *= chipColor[chip - 1];
                }
            }
            if (block == 5)
            {
                if (chip > 0)
                {
                    if (chip > lp.chipCount)
                    {
                        lp.SetChip(x, y, -1);
                    }
                    color *= chipColor[chip - 1];
                }
            }
            if (block == 0 && chip == -1 && lp.GetPowerup(x, y) == 0)
            {
                color *= unpressedColor;
            }
            if (block == 0 && lp.GetPowerup(x, y) > 0)
            {
                label += (label.Length == 0 ? "" : "\n");
                label += powerupLabel[lp.GetPowerup(x, y) - 1];
            }

            if (block > 0 && block <= 3)
            {
                label += (label.Length == 0 ? "" : "\n") + "B:" + block.ToString();
            }
            if (block == 4)
            {
                label += (label.Length == 0 ? "" : "\n") + "Weed";
            }
            if (block == 5)
            {
                label += (label.Length == 0 ? "" : "\n") + "Brch";
            }
            if (jelly > 0 && lp.target == FieldTarget.Jelly)
            {
                label += (label.Length == 0 ? "" : "\n") + "J:" + jelly.ToString();
            }
        }
        GUI.backgroundColor = color;
        btn = GUI.Button(new Rect(r.xMin + x * (cellSize + slotOffect), r.yMin + y * (cellSize + slotOffect), cellSize, cellSize), label, slotStyle);

        float cursor = -2;

        if (lp.GetSlot(x, y) && lp.GetGenerator(x, y))
        {
            GUI.backgroundColor = Color.black;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + cursor, r.yMin + y * (cellSize + slotOffect) - 2, 10, 10), "G", iconStyle);
            cursor += 10 + 2;
        }

        if (lp.target == FieldTarget.SugarDrop && lp.GetSlot(x, y) && lp.GetSugarDrop(x, y))
        {
            GUI.backgroundColor = Color.black;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + cursor, r.yMin + y * (cellSize + slotOffect) - 2, 10, 10), "S", iconStyle);
            cursor += 10 + 2;
        }

        if (lp.GetSlot(x, y) && lp.GetTeleport(x, y) > 0)
        {
            GUI.backgroundColor = Color.black;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + cursor, r.yMin + y * (cellSize + slotOffect) - 2, cellSize - 12, 10), "T:" + lp.GetTeleport(x, y).ToString(), iconStyle);
        }

        if (lp.GetSlot(x, y))
        {
            GUI.backgroundColor = transparentColor;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect), r.yMin + y * (cellSize + slotOffect) + cellSize - 10, 20, 10), (y * 12 + x + 1).ToString(), slotStyle);
        }

        GUI.backgroundColor = defaultColor;
        return(btn);
    }
示例#5
0
    bool DrawSlotButton(int x, int y, Rect r, LevelProfile lp)
    {
        defaultColor = GUI.backgroundColor;
        Color color = Color.white;
        string label = "";
        bool btn = false;
        int block = lp.GetBlock (x, y);
        int jelly = lp.GetJelly (x, y);
        int chip = lp.GetChip (x, y);
        if (!lp.GetSlot(x, y)) color *= 0;
        else {
            if (block == 0) {
                if (chip == 9) {
                    color *= buttonColor;
                    lp.SetPowerup(x, y, 0);
                } else if (chip > 0) {
                    if (chip > lp.chipCount)
                        lp.SetChip(x, y, -1);
                    color *= chipColor[chip - 1];
                }
            }
            if (block == 5) {
                if (chip > 0) {
                    if (chip > lp.chipCount)
                        lp.SetChip(x, y, -1);
                    color *= chipColor[chip - 1];
                }
            }
            if (block == 0 && chip == -1 && lp.GetPowerup(x, y) == 0) {
                color *= unpressedColor;
            }
            if (block == 0 && lp.GetPowerup(x, y) > 0) {
                label += (label.Length == 0 ? "" : "\n");
                label += powerupLabel[lp.GetPowerup(x, y)];
            }

            if (block > 0 && block <= 3)
                label += (label.Length == 0 ? "" : "\n") + "B:" + block.ToString();
            if (block == 4)
                label += (label.Length == 0 ? "" : "\n") + "Weed";
            if (block == 5)
                label += (label.Length == 0 ? "" : "\n") + "Brch";
            if (jelly > 0 && lp.target == FieldTarget.Jelly) {
                label += (label.Length == 0 ? "" : "\n");
                switch (jelly) {
                    case 1: label += "JS"; break;
                    case 2: label += "JT"; break;
                }
            }

        }
        GUI.backgroundColor = color;
        btn = GUI.Button(new Rect(r.xMin + x * (cellSize + slotOffect), r.yMin + y * (cellSize + slotOffect), cellSize, cellSize), label, slotStyle);

        float cursor = -2;

        if (lp.GetSlot(x, y) && lp.GetGenerator (x, y)) {
            GUI.backgroundColor = Color.black;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + cursor, r.yMin + y * (cellSize + slotOffect) - 2, 10, 10), "G", iconStyle);
            cursor += 10 + 2;
        }

        if (lp.target == FieldTarget.SugarDrop && lp.GetSlot(x, y) && lp.GetSugarDrop(x, y)) {
            GUI.backgroundColor = Color.black;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + cursor, r.yMin + y * (cellSize + slotOffect) - 2, 10, 10), "S", iconStyle);
            cursor += 10 + 2;
        }

        if (lp.GetSlot(x, y)) {
            GUI.backgroundColor = Color.black;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + cursor, r.yMin + y * (cellSize + slotOffect) - 2, 10, 10), gravityLabel[profile.GetGravity(x, y)], iconStyle);
            cursor += 10 + 2;
        }

        if (lp.GetSlot(x, y) && lp.GetTeleport (x, y) > 0) {
            GUI.backgroundColor = Color.black;
            GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + cursor, r.yMin + y * (cellSize + slotOffect) - 2, cellSize - 12, 10), "T:" + lp.GetTeleport (x, y).ToString(), iconStyle);
        }

        if (lp.GetSlot (x, y)) {
            GUI.backgroundColor = transparentColor;
            GUI.Box (new Rect (r.xMin + x * (cellSize + slotOffect), r.yMin + y * (cellSize + slotOffect) + cellSize - 10, 20, 10), (y * 12 + x + 1).ToString (), slotStyle);
        }

        GUI.backgroundColor = defaultColor;
        return btn;
    }