Exemplo n.º 1
0
        public static void DrawWallPreview(Rect r, LevelProfile lp)
        {
            int x;
            int y;

            GUI.enabled = false;
            for (x = 0; x < lp.Width - 1; x++)
            {
                for (y = 0; y < lp.Height; y++)
                {
                    if (lp.GetWallV(x, y) && lp.GetSlot(x, y) && lp.GetSlot(x + 1, y))
                    {
                        DrawWallButton(x, y, "V", r, lp);
                    }
                }
            }
            for (x = 0; x < lp.Width; x++)
            {
                for (y = 0; y < lp.Height - 1; y++)
                {
                    if (lp.GetWallH(x, y) && lp.GetSlot(x, y) && lp.GetSlot(x, y + 1))
                    {
                        DrawWallButton(x, y, "H", r, lp);
                    }
                }
            }
            GUI.enabled = true;
        }
Exemplo n.º 2
0
        void DrawSlot()
        {
            for (int x = 0; x < profile.Width; x++)
            {
                for (int y = 0; y < profile.Height; y++)
                {
                    if (teleportID != -Vector2.right)
                    {
                        if (DrawSlotButtonTeleport(x, y, rect, profile))
                        {
                            if (x == teleportID.x && y == teleportID.y)
                            {
                                profile.SetTeleport(Mathf.CeilToInt(teleportID.x), Mathf.CeilToInt(teleportID.y), 0);
                            }
                            else
                            {
                                profile.SetTeleport(Mathf.CeilToInt(teleportID.x), Mathf.CeilToInt(teleportID.y), y * 12 + x + 1);
                            }
                            teleportID = -Vector2.right;
                        }
                        continue;
                    }


                    if (DrawSlotButton(x, y, rect, profile))
                    {
                        switch (toolID)
                        {
                        case "Slots":
                            profile.SetSlot(x, y, !profile.GetSlot(x, y));
                            break;

                        case "Generators":
                            profile.SetGenerator(x, y, !profile.GetGenerator(x, y));
                            break;

                        case "Teleports":
                            teleportID = new Vector2(x, y);
                            break;

                        case "Sugar Drop":
                            //profile.SetSugarDrop(x, y, !profile.GetSugarDrop(x, y));
                            break;

                        case "Gravity":
                            profile.SetGravity(x, y, Mathf.CeilToInt(Mathf.Repeat(profile.GetGravity(x, y) + 1, 4)));
                            break;
                        }
                    }
                }
            }
            DrawWallPreview(rect, profile);
        }
Exemplo n.º 3
0
        bool DrawSlotButtonTeleport(int x, int y, Rect r, LevelProfile lp)
        {
            if (!lp.GetSlot(x, y))
            {
                return(false);
            }

            defaultColor = GUI.backgroundColor;
            Color color = Color.cyan;

            if (teleportID.x == x && teleportID.y == y)
            {
                color = Color.magenta;
            }
            if (lp.GetTeleport(Mathf.FloorToInt(teleportID.x), Mathf.FloorToInt(teleportID.y)) == 12 * y + x + 1)
            {
                color = Color.yellow;
            }
            string label = "";

            bool btn = false;

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

            if (lp.GetSlot(x, y) && lp.GetGenerator(x, y))
            {
                GUI.backgroundColor = Color.black;
                GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) - 2, r.yMin + y * (cellSize + slotOffect) - 2, 10, 10), "G", iconStyle);
            }
            if (lp.GetSlot(x, y) && lp.GetTeleport(x, y) > 0)
            {
                GUI.backgroundColor = Color.black;
                GUI.Box(new Rect(r.xMin + x * (cellSize + slotOffect) + 10, 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.º 4
0
        public void DrawSlotPreview(Rect r, LevelProfile lp)
        {
            int x;
            int y;

            GUI.enabled = false;
            for (x = 0; x < lp.Width; x++)
            {
                for (y = 0; y < lp.Height; y++)
                {
                    if (lp.GetSlot(x, y))
                    {
                        DrawSlotButton(x, y, r, lp);
                    }
                }
            }
            GUI.enabled = true;
        }
Exemplo n.º 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.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);
        }