Beispiel #1
0
 void SetAllChips(int c)
 {
     for (int x = 0; x < 12; x++)
     {
         for (int y = 0; y < 12; y++)
         {
             profile.SetChip(x, y, c);
         }
     }
 }
Beispiel #2
0
 void DrawChip()
 {
     help = "You specify a group of colors. The final color will be determined by chance during the level generating in accordance with these groups." +
            "\nColored slots - chip with the random color of the corresponding group." +
            "\nWhite slot - chip with random color." +
            "\nGrey slot - slot without chip.";
     for (int x = 0; x < profile.width; x++)
     {
         for (int y = 0; y < profile.height; y++)
         {
             if (DrawSlotButton(x, y, rect, profile))
             {
                 profile.SetChip(x, y, profile.GetChip(x, y) + 1);
                 if (profile.GetChip(x, y) > profile.chipCount)
                 {
                     profile.SetChip(x, y, -1);
                 }
             }
         }
     }
     DrawWallPreview(rect, profile);
 }
Beispiel #3
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);
    }
    void DrawChip()
    {
        for (int x = 0; x < profile.width; x++)
        {
            for (int y = 0; y < profile.height; y++)
            {
                if (DrawSlotButton(x, y, rect, profile))
                {
                    switch (toolID)
                    {
                    case "Random":
                        if (profile.GetChip(x, y) != 0)
                        {
                            profile.SetChip(x, y, 0);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;

                    case "Color A":
                        if (profile.GetChip(x, y) != 1)
                        {
                            profile.SetChip(x, y, 1);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;

                    case "Color B":
                        if (profile.GetChip(x, y) != 2)
                        {
                            profile.SetChip(x, y, 2);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;

                    case "Color C":
                        if (profile.GetChip(x, y) != 3)
                        {
                            profile.SetChip(x, y, 3);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;

                    case "Color D":
                        if (profile.GetChip(x, y) != 4)
                        {
                            profile.SetChip(x, y, 4);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;

                    case "Color E":
                        if (profile.GetChip(x, y) != 5)
                        {
                            profile.SetChip(x, y, 5);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;

                    case "Color F":
                        if (profile.GetChip(x, y) != 6)
                        {
                            profile.SetChip(x, y, 6);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;

                    case "Stone":
                        if (profile.GetChip(x, y) != 9)
                        {
                            profile.SetChip(x, y, 9);
                        }
                        else
                        {
                            profile.SetChip(x, y, -1);
                        }
                        break;
                    }
                }
            }
        }
        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);
    }
    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;
    }