Exemplo n.º 1
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.CardCount)
                        {
                            lp.SetChip(x, y, -1);
                        }

                        color *= chipColor[chip - 1];
                    }
                }

                if (block == 5)
                {
                    if (chip > 0)
                    {
                        if (chip > lp.CardCount)
                        {
                            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 += powerupLabelNew[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 (block >= 6 && block <= 9)
                {
                    label += (label.Length == 0 ? "" : "\n") + "Boss" + (block - 5).ToString();
                }
//				if (jelly > 0 && lp.Target == E_FieldTarget.Jelly) {
//					label += (label.Length == 0 ? "" : "\n");
//					switch (jelly) {
//						case 1: label += "JS"; break;
//						case 2: label += "JT"; break;
//					}
//				}

                if (block >= 10 && block < 20)
                {
                    label += (label.Length == 0 ? "" : "\n") + "漩涡" + (block - 9).ToString();
                }

                if (block >= 20 && block < 30)
                {
                    label += (label.Length == 0 ? "" : "\n") + "风车";
                }

                if (block >= 30 && block < 40)
                {
                    label += (label.Length == 0 ? "" : "\n") + "发射器" + (block - 29).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 == E_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);
        }
Exemplo n.º 2
0
        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 "卡牌 A":
                            if (profile.GetChip(x, y) != 1)
                            {
                                profile.SetChip(x, y, 1);
                            }
                            else
                            {
                                profile.SetChip(x, y, -1);
                            }
                            break;

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

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

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

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

                        case "卡牌 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);
        }