示例#1
0
    Level generateRandomLevel(int levelId)
    {
        List <string> usedSegment = new List <string>();

        var values = Enum.GetValues(typeof(MonsterInputType));

        MonsterInputType randomType = (MonsterInputType)(values.GetValue(UnityEngine.Random.Range(0, values.Length)));

        Level level = new Level();

        level.levelId            = levelId;
        level.lettersGroup       = 1;
        level.CollectableMonster = null;
        level.monsterInputType   = randomType;
        level.hideCallout        = 1;
        level.shuffleSegment     = false;
        level.SegmentTime        = 13f;

        level.Segments = new Segment[5];

        Level[] filtedLevels = getFilteredLevels(randomType);

        int i = 0;

        while (i < 5)
        {
            Level l = filtedLevels[UnityEngine.Random.Range(0, filtedLevels.Length)];
            if (l != null)
            {
                int sId = UnityEngine.Random.Range(0, l.Segments.Length);

                string sKey = l.levelId + "_" + sId.ToString();
                if (!usedSegment.Contains(sKey))
                {
                    Segment s = l.Segments[sId];
                    if (s != null)
                    {
                        usedSegment.Add(sKey);

                        level.Segments[i] = s;
                        level.StoneType   = l.StoneType;
                        i++;
                    }
                }
            }
        }
        level.LoadTemplete(GameAssets.Instance.DefaultLevelTempletes);

        return(level);
    }
    public void Init()
    {
        requiredLetterIndex = 0;
//		text.color = GameplayController.Instance.CurrentLevel.BubbleLetterFontColorBold;
//		text.GetComponent<Outline>().effectColor = GameplayController.Instance.CurrentLevel.BubbleLetterFontOutlineColorDefault;


        mMonsterInputType = GameplayController.Instance.CurrentLevel.monsterInputType;

        if (mMonsterInputType == MonsterInputType.LetterInWord || mMonsterInputType == MonsterInputType.Word)
        {
            text.fontSize = FontSizeWord;
        }
        else
        {
            text.fontSize = FontSizeLetter;
        }

        transform.SetParent(GameObject.Find("Panel - Monsters").transform);

        GameObject location = GameplayController.Instance.MonsterHoleButton.gameObject;        //GameObject.Find("MonsterHoleButton");

        // Delete by Tzahi
        //		transform.position = location.transform.position;
        // Added by Tzahi
        transform.localPosition = new Vector2();

        holeButtonController = location.GetComponent <HoleButtonController>();
        holeButtonController.onPointerEnter += OnPointerEnter;
        holeButtonController.onPointerDown  += OnPointerDown;
        holeButtonController.onPointerExit  += OnPointerExit;
        holeButtonController.onPointerUp    += OnPointerUp;
        holeButtonController.onPointerClick += HoleButtonController_onPointerClick;

        // Delete by Tzahi
//		Model = GameplayController.Instance.CurrentLevel.HoleMonster;

        ThoughtBubbleAnimation();

        SetMonsterState(MonsterState.Idle);

        //SetAnimation (ANIMATION_IDLE);
        //PlayMouthAnimation (MouthIdleSprites);
        //PlayEyeAnimation (EyeIdleSprites);
    }
示例#3
0
    Level[] getFilteredLevels(MonsterInputType type)
    {
        List <Level> filtedLevels = new List <Level>();

        foreach (Level lvl in Levels)
        {
            if (
                lvl.Segments != null
                &&
                lvl.monsterInputType == type
                &&
                lvl.lettersGroup <= UsersController.Instance.userData().LastLetterGroup
                )
            {
                filtedLevels.Add(lvl);
            }
        }
        return(filtedLevels.ToArray());
    }