Пример #1
0
    IEnumerator StartLevelRoutine()
    {
        UIAssistant.main.ShowPage("Loading");

        while (CPanel.uiAnimation > 0)
        {
            yield return(0);
        }

        ProfileAssistant.main.local_profile["life"]--;

        SessionAssistant.main.enabled = false;

        SessionAssistant.Reset();

        yield return(StartCoroutine(CreateField()));

        SessionAssistant.main.enabled = true;
        SessionAssistant.main.eventCount++;

        SessionAssistant.main.StartSession(LevelProfile.main.target, LevelProfile.main.limitation);
        GameCamera.main.transform.position = new Vector3(0, 20, -10);

        yield return(0);
    }
    public void DrawMixes() {
        if (!metaTarget) {
            EditorGUILayout.HelpBox("SessionAssistant is missing", MessageType.Error);
            return;
        }
        main = (SessionAssistant) metaTarget;
        Undo.RecordObject(main, "");

        EditorGUILayout.BeginHorizontal();
        GUILayout.Space(20);
        GUILayout.Label("First type", GUILayout.Width(100));
        GUILayout.Label("Second type", GUILayout.Width(100));
        GUILayout.Label("Target type", GUILayout.Width(100));
        GUILayout.Label("Message", GUILayout.Width(100));
        EditorGUILayout.EndHorizontal();

        List<string> chips = new List<string>();
        foreach (SessionAssistant.ChipInfo info in main.chipInfos)
            if (!chips.Contains(info.name))
                chips.Add(info.name);

        foreach (SessionAssistant.Mix mix in main.mixes) {
            EditorGUILayout.BeginHorizontal();


            if (chips.Count > 0) {
                if (GUILayout.Button("X", GUILayout.Width(20))) {
                    main.mixes.Remove(mix);
                    break;
                }

                int id = chips.IndexOf(mix.pair.a);
                if (id == -1)
                    id = 0;
                id = EditorGUILayout.Popup(id, chips.ToArray(), GUILayout.Width(80));
                mix.pair.a = chips[id];

                id = chips.IndexOf(mix.pair.b);
                if (id == -1)
                    id = 0;
                id = EditorGUILayout.Popup(id, chips.ToArray(), GUILayout.Width(80));
                mix.pair.b = chips[id];

                GUILayout.Label((string) mix.pair.a, EditorStyles.boldLabel, GUILayout.Width(100));

                mix.function = EditorGUILayout.TextField(mix.function, GUILayout.Width(100));
            }


            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Add", GUILayout.Width(60)))
            main.mixes.Add(new SessionAssistant.Mix());

        EditorGUILayout.EndHorizontal();
    }
Пример #3
0
    public static int scoreC = 10; // Score multiplier

    void Awake()
    {
        main = this;
        combinations.Sort((Combinations a, Combinations b) => {
            if (a.priority < b.priority)
            {
                return(-1);
            }
            if (a.priority > b.priority)
            {
                return(1);
            }
            return(0);
        });
    }
Пример #4
0
    public void  CreateField(Field f)
    {
        RemoveField();

        field = f;


        SessionAssistant.Reset();

        //Generating field;
        GenerateSlots();
        GenerateJelly();
        GenerateBlocks();
        GenerateWalls();
        GenerateChips();
        GeneratePowerups();

        SessionAssistant.main.enabled = true;
        SessionAssistant.main.eventCount++;
    }
Пример #5
0
    // Field generator
    public void  CreateField()
    {
        RemoveField();          // Removing old field

        field           = new Field(LevelProfile.main.width, LevelProfile.main.height);
        field.chipCount = LevelProfile.main.chipCount;

        SessionAssistant.Reset();

        //Generating field;
        GenerateSlots();
        GenerateJelly();
        GenerateBlocks();
        GenerateWalls();
        GenerateChips();
        GeneratePowerups();

        SessionAssistant.main.enabled = true;
        SessionAssistant.main.eventCount++;
    }
 void  Awake()
 {
     sectionLockers.GetComponentsInChildren <MapSectionLocker>(true, lockers);
     main = this;
     if (PlayerPrefs.HasKey("additionalLives"))
     {
         additionalLives = PlayerPrefs.GetInt("additionalLives");
     }
     else
     {
         additionalLives = 0;
         PlayerPrefs.SetInt("additionalLives", additionalLives);
     }
     energyBarText.text = livesLeft + "/" + MAX_LIVES;
     energyBar.GetComponent <Image>().fillAmount = livesLeft * 0.2f;
     if (PlayerPrefs.HasKey("lostLifeTimeStamp"))
     {
         lostLifeTimeStamp = DateTime.Parse(PlayerPrefs.GetString("lostLifeTimeStamp"));
         livesLeft         = PlayerPrefs.GetInt("livesLeft");
         Debug.LogWarning("TimeStamp: " + lostLifeTimeStamp.ToString() + ", LivesLeft: " + livesLeft.ToString());
         PlayerPrefs.DeleteKey("livesLeft");
         PlayerPrefs.DeleteKey("lostLifeTimeStamp");
     }
 }
    public void DrawChips() {
        if (!metaTarget) {
            EditorGUILayout.HelpBox("SessionAssistant is missing", MessageType.Error);
            return;
        }
        main = (SessionAssistant) metaTarget;
        Undo.RecordObject(main, "");

        if (!ContentAssistant.main)
            ContentAssistant.main = GameObject.FindObjectOfType<ContentAssistant>();

        if (!ContentAssistant.main) {
            EditorGUILayout.HelpBox("ContentAssistant is missing", MessageType.Error);
            return;
        }


        EditorGUILayout.BeginHorizontal();
        GUILayout.Space(20);
        GUILayout.Label("Name", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(120));
        GUILayout.Label("Content Name", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(120));
        GUILayout.Label("Color", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(40));
        GUILayout.Label("LE_Name", EditorStyles.centeredGreyMiniLabel, GUILayout.Width(60));
        EditorGUILayout.EndHorizontal();

        defaultColor = GUI.color;

        if (main.chipInfos.Count == 0 || main.chipInfos[0].name != "SimpleChip") {
            main.chipInfos.Insert(0, new SessionAssistant.ChipInfo());
            main.chipInfos[0].name = "SimpleChip";
            main.chipInfos[0].contentName = "SimpleChip";
            main.chipInfos[0].color = true;
            main.chipInfos[0].shirtName = "";
        }

        foreach (SessionAssistant.ChipInfo chipInfo in main.chipInfos) {
            EditorGUILayout.BeginHorizontal();

            if (chipInfo == main.chipInfos[0])
                GUI.enabled = false;

            if (GUILayout.Button("X", GUILayout.Width(20))) {
                main.chipInfos.Remove(chipInfo);
                break;
            }
            chipInfo.name = EditorGUILayout.TextField(chipInfo.name, GUILayout.Width(120));
            chipInfo.contentName = EditorGUILayout.TextField(chipInfo.contentName, GUILayout.Width(120));
            chipInfo.color = EditorGUILayout.Toggle(chipInfo.color, GUILayout.Width(40));
            chipInfo.shirtName = EditorGUILayout.TextField(chipInfo.shirtName, GUILayout.Width(30));
            if (chipInfo.shirtName.Length > 2)
                chipInfo.shirtName = chipInfo.shirtName.Substring(0, 2);


            EditorGUILayout.EndHorizontal();

            GUI.color = Color.red;
            if (ContentAssistant.main) {
                if (chipInfo.color) {
                    foreach (string color in Chip.chipTypes) {
                        if (!ContentAssistant.main.cItems.Exists(x => x.item.name == chipInfo.contentName + color))
                            EditorGUILayout.LabelField("'" + chipInfo.contentName + color + "' is missing", EditorStyles.boldLabel, GUILayout.Width(250));
                    }
                } else
                    if (!ContentAssistant.main.cItems.Exists(x => x.item.name == chipInfo.contentName))
                    EditorGUILayout.LabelField("'" + chipInfo.contentName + "' is missing", EditorStyles.boldLabel, GUILayout.Width(250));

            }
            GUI.color = defaultColor;
            GUI.enabled = true;
        }

        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Add", GUILayout.Width(60)))
            main.chipInfos.Add(new SessionAssistant.ChipInfo());

        EditorGUILayout.EndHorizontal();
    }
    public void DrawBlockers() {
        if (!metaTarget) {
            EditorGUILayout.HelpBox("SessionAssistant is missing", MessageType.Error);
            return;
        }
        main = (SessionAssistant) metaTarget;
        Undo.RecordObject(main, "");

        if (!ContentAssistant.main) {
            ContentAssistant.main = GameObject.FindObjectOfType<ContentAssistant>();
            ContentAssistant.main.Initialize();
        }

        if (!ContentAssistant.main) {
            EditorGUILayout.HelpBox("ContentAssistant is missing", MessageType.Error);
            return;
        }

        defaultColor = GUI.color;

        EditorGUILayout.BeginHorizontal();
        GUILayout.Space(20);
        GUILayout.Label("Name", GUILayout.Width(100));
        GUILayout.Label("Content Name", GUILayout.Width(100));
        GUILayout.Label("Levels", GUILayout.Width(50));
        GUILayout.Label("Chip", GUILayout.Width(40));
        GUILayout.Label("LE_Name", GUILayout.Width(60));
        EditorGUILayout.EndHorizontal();

        foreach (SessionAssistant.BlockInfo blockInfo in main.blockInfos) {
            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("X", GUILayout.Width(20))) {
                main.blockInfos.Remove(blockInfo);
                break;
            }

            blockInfo.name = EditorGUILayout.TextField(blockInfo.name, GUILayout.Width(100));
            blockInfo.contentName = EditorGUILayout.TextField(blockInfo.contentName, GUILayout.Width(100));
            if (ContentAssistant.main) {
                IBlock iblock = ContentAssistant.main.GetPrefab<IBlock>(blockInfo.contentName);
                if (iblock) {
                    blockInfo.levelCount = iblock.GetLevels();
                    blockInfo.chip = iblock.CanItContainChip();
                }
            }
            GUILayout.Label(blockInfo.levelCount > 0 ? blockInfo.levelCount.ToString() : "N/A", GUILayout.Width(50));
            GUILayout.Toggle(blockInfo.chip, "", GUILayout.Width(40));
            blockInfo.shirtName = EditorGUILayout.TextField(blockInfo.shirtName, GUILayout.Width(30));
            if (blockInfo.shirtName.Length > 2)
                blockInfo.shirtName = blockInfo.shirtName.Substring(0, 2);


            EditorGUILayout.EndHorizontal();

            GUI.color = Color.red;
            if (ContentAssistant.main) {
                if (!ContentAssistant.main.cItems.Exists(x => x.item.name == blockInfo.contentName))
                    EditorGUILayout.LabelField("'" + blockInfo.contentName + "' is missing", EditorStyles.boldLabel, GUILayout.Width(250));

            }
            GUI.color = defaultColor;
        }

        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Add", GUILayout.Width(60)))
            main.blockInfos.Add(new SessionAssistant.BlockInfo());

        EditorGUILayout.EndHorizontal();
    }
    public override void OnInspectorGUI() {
        if (metaTarget == null) return;
        main = (SessionAssistant) metaTarget;
        defaultColor = GUI.color;

        if (main.combinations == null)
            main.combinations = new List<SessionAssistant.Combinations>();

        #region Chips
        chipsFade.target = GUILayout.Toggle(chipsFade.target, "Chips", EditorStyles.foldout);

        if (EditorGUILayout.BeginFadeGroup(chipsFade.faded)) {
            EditorGUILayout.BeginVertical(EditorStyles.textArea);

            DrawChips();
            
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.EndFadeGroup();
        #endregion

        #region Blockers
        blockersFade.target = GUILayout.Toggle(blockersFade.target, "Blockers", EditorStyles.foldout);

        if (EditorGUILayout.BeginFadeGroup(blockersFade.faded)) {
            EditorGUILayout.BeginVertical(EditorStyles.textArea);

            DrawBlockers();
            
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.EndFadeGroup();
        #endregion

        #region Combinations
        combinationsFade.target = GUILayout.Toggle(combinationsFade.target, "Combinations", EditorStyles.foldout);

        if (EditorGUILayout.BeginFadeGroup(combinationsFade.faded)) {
            EditorGUILayout.BeginVertical(EditorStyles.textArea);

            DrawCombinations();
            
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.EndFadeGroup();
        #endregion

        #region Mixes
        mixesFade.target = GUILayout.Toggle(mixesFade.target, "Mixes", EditorStyles.foldout);

        if (EditorGUILayout.BeginFadeGroup(mixesFade.faded)) {
            EditorGUILayout.BeginVertical(EditorStyles.textArea);

            DrawMixes();
           
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.EndFadeGroup();
        #endregion

        GUI.color = defaultColor;
    }
    public void DrawCombinations() {
        if (!metaTarget) {
            EditorGUILayout.HelpBox("SessionAssistant is missing", MessageType.Error);
            return;
        }
        main = (SessionAssistant) metaTarget;
        Undo.RecordObject(main, "");

        if (main.chipInfos.Count == 0)
            EditorGUILayout.HelpBox("No powerups found", MessageType.Error, true);

        EditorGUILayout.BeginHorizontal();

        GUILayout.Space(20);
        GUILayout.Label("Priority", GUILayout.Width(80));
        if (main.squareCombination)
            GUILayout.Label("Square", GUILayout.Width(50));
        GUILayout.Label("Vert.", GUILayout.Width(40));
        GUILayout.Label("Horiz.", GUILayout.Width(40));
        GUILayout.Label("Count", GUILayout.Width(40));
        GUILayout.Label("PowerUp", GUILayout.Width(80));

        EditorGUILayout.EndHorizontal();

        List<string> chips = new List<string>();
        foreach (SessionAssistant.ChipInfo info in main.chipInfos)
            if (!chips.Contains(info.name))
                chips.Add(info.name);

        foreach (SessionAssistant.Combinations combination in main.combinations) {
            if (!main.squareCombination && combination.square)
                continue;

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("X", GUILayout.Width(20))) {
                main.combinations.Remove(combination);
                break;
            }
            combination.priority = EditorGUILayout.IntField(combination.priority, GUILayout.Width(80));
            if (main.squareCombination) {
                combination.square = EditorGUILayout.Toggle(combination.square, GUILayout.Width(50));
                GUI.enabled = !combination.square;
            }
            combination.vertical = EditorGUILayout.Toggle(combination.vertical, GUILayout.Width(40));
            combination.horizontal = EditorGUILayout.Toggle(combination.horizontal, GUILayout.Width(40));
            combination.minCount = Mathf.Clamp(EditorGUILayout.IntField(combination.minCount, GUILayout.Width(40)), 4, 9);
            GUI.enabled = true;

            if (chips.Count > 0) {
                int id = chips.IndexOf(combination.chip);
                if (id == -1)
                    id = 0;
                id = EditorGUILayout.Popup(id, chips.ToArray(), GUILayout.Width(80));
                combination.chip = chips[id];
            }

            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.BeginHorizontal();

        if (GUILayout.Button("Add", GUILayout.Width(60)))
            main.combinations.Add(new SessionAssistant.Combinations());
        if (GUILayout.Button("Sort", GUILayout.Width(60)))
            main.combinations.Sort((SessionAssistant.Combinations a, SessionAssistant.Combinations b) => {
                if (a.priority < b.priority)
                    return -1;
                if (a.priority > b.priority)
                    return 1;
                return 0;
            });

        EditorGUILayout.EndHorizontal();
    }
    public override void OnInspectorGUI()
    {
        main = (SessionAssistant) target;
        Undo.RecordObject (main, "");
        Color defalutColor = GUI.color;

        if (main.combinations == null)
            main.combinations = new List<SessionAssistant.Combinations>();

        main.squareCombination = EditorGUILayout.Toggle("Square Combinations", main.squareCombination);

        #region Power Ups
        powerupsFade.target = GUILayout.Toggle(powerupsFade.target, "Power Ups", EditorStyles.foldout);

        if (EditorGUILayout.BeginFadeGroup(powerupsFade.faded)) {

            if (!ContentAssistant.main)
                ContentAssistant.main = GameObject.FindObjectOfType<ContentAssistant>();

            if (!ContentAssistant.main)
                EditorGUILayout.HelpBox("ContentAssistant is missing", MessageType.Error, true);

            EditorGUILayout.BeginHorizontal();

            GUILayout.Space(20);
            GUILayout.Label("Name", GUILayout.Width(120));
            GUILayout.Label("Content Name", GUILayout.Width(120));
            GUILayout.Label("Color", GUILayout.Width(40));
            GUILayout.Label("LE_ID", GUILayout.Width(40));
            GUILayout.Label("LE_Name", GUILayout.Width(60));

            EditorGUILayout.EndHorizontal();

            foreach (SessionAssistant.PowerUps powerup in main.powerups) {
                EditorGUILayout.BeginHorizontal();

                if (GUILayout.Button("X", GUILayout.Width(20))) {
                    main.powerups.Remove(powerup);
                    break;
                }
                powerup.name = EditorGUILayout.TextField(powerup.name, GUILayout.Width(120));
                powerup.contentName = EditorGUILayout.TextField(powerup.contentName, GUILayout.Width(120));
                powerup.color = EditorGUILayout.Toggle(powerup.color, GUILayout.Width(40));
                powerup.levelEditorID = EditorGUILayout.IntField(powerup.levelEditorID, GUILayout.Width(40));
                if (powerup.levelEditorID > 0) {
                    powerup.levelEditorName = EditorGUILayout.TextField(powerup.levelEditorName, GUILayout.Width(60));
                    if (powerup.levelEditorName.Length > 2)
                        powerup.levelEditorName = powerup.levelEditorName.Substring(0, 2);
                }

                EditorGUILayout.EndHorizontal();

                GUI.color = Color.red;
                if (ContentAssistant.main) {
                    if (powerup.color) {
                        foreach (string color in Chip.chipTypes) {
                            if (!ContentAssistant.main.cItems.Exists(x => x.item.name == powerup.contentName + color))
                                EditorGUILayout.LabelField("'" + powerup.contentName + color + "' is missing", EditorStyles.boldLabel, GUILayout.Width(250));
                        }
                    } else
                        if (!ContentAssistant.main.cItems.Exists(x => x.item.name == powerup.contentName))
                            EditorGUILayout.LabelField("'" + powerup.contentName + "' is missing", EditorStyles.boldLabel, GUILayout.Width(250));

                }
                GUI.color = defalutColor;
            }

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("Add", GUILayout.Width(60)))
                main.powerups.Add(new SessionAssistant.PowerUps());

            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.EndFadeGroup();
        #endregion

        #region Combinations
        combinationsFade.target = GUILayout.Toggle(combinationsFade.target, "Combinations", EditorStyles.foldout);

        if (EditorGUILayout.BeginFadeGroup(combinationsFade.faded)) {

            if (main.powerups.Count == 0)
                EditorGUILayout.HelpBox("No power up found", MessageType.Error, true);

            EditorGUILayout.BeginHorizontal();

            GUILayout.Space(20);
            GUILayout.Label("Priority", GUILayout.Width(80));
            if (main.squareCombination)
                GUILayout.Label("Square", GUILayout.Width(50));
            GUILayout.Label("Vert.", GUILayout.Width(40));
            GUILayout.Label("Horiz.", GUILayout.Width(40));
            GUILayout.Label("Count", GUILayout.Width(40));
            GUILayout.Label("PowerUp", GUILayout.Width(80));
            GUILayout.Label("Tag", GUILayout.Width(60));

            EditorGUILayout.EndHorizontal();

            foreach (SessionAssistant.Combinations combination in main.combinations) {
                if (!main.squareCombination && combination.square)
                    continue;

                EditorGUILayout.BeginHorizontal();

                if (GUILayout.Button("X", GUILayout.Width(20))) {
                    main.combinations.Remove(combination);
                    break;
                }
                combination.priority = EditorGUILayout.IntField(combination.priority, GUILayout.Width(80));
                if (main.squareCombination) {
                    combination.square = EditorGUILayout.Toggle(combination.square, GUILayout.Width(50));
                    GUI.enabled = !combination.square;
                }
                combination.vertical = EditorGUILayout.Toggle(combination.vertical, GUILayout.Width(40));
                combination.horizontal = EditorGUILayout.Toggle(combination.horizontal, GUILayout.Width(40));
                combination.minCount = Mathf.Clamp(EditorGUILayout.IntField(combination.minCount, GUILayout.Width(40)), 4, 9);
                GUI.enabled = true;

                if (main.powerups.Count > 0) {
                    List<string> powerups = new List<string>();
                    foreach (SessionAssistant.PowerUps powerup in main.powerups)
                        if (!powerups.Contains(powerup.name))
                            powerups.Add(powerup.name);

                    int id = powerups.IndexOf(combination.powerup);
                    if (id == -1) id = 0;
                    id = EditorGUILayout.Popup(id, powerups.ToArray(), GUILayout.Width(80));
                    combination.powerup = powerups[id];
                }

                combination.tag = EditorGUILayout.TextField(combination.tag, GUILayout.Width(60));

                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.BeginHorizontal();

            if (GUILayout.Button("Add", GUILayout.Width(60)))
                main.combinations.Add(new SessionAssistant.Combinations());
            if (GUILayout.Button("Sort", GUILayout.Width(60)))
                main.combinations.Sort((SessionAssistant.Combinations a, SessionAssistant.Combinations b) => {
                    if (a.priority < b.priority)
                        return -1;
                    if (a.priority > b.priority)
                        return 1;
                    return 0;
                });

            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.EndFadeGroup();
        #endregion

        EditorUtility.SetDirty(main);
    }
Пример #12
0
 void Awake()
 {
     main = this;
     combinations.Sort((SessionAssistant.Combinations a, SessionAssistant.Combinations b) => {
         if (a.priority < b.priority)
             return -1;
         if (a.priority > b.priority)
             return 1;
         return 0;
     });
 }
Пример #13
0
    public static int scoreC = 10;     // Score multiplier

    void  Awake()
    {
        main = this;
    }
Пример #14
0
 void Awake()
 {
     main = this;
 }