Esempio n. 1
0
    public bool UseHint()
    {
        List <GameObject> candidates = new List <GameObject> ();

        for (int i = 0; i < hints.childCount; i++)
        {
            Transform candidate = hints.GetChild(i);
            if (false == candidate.gameObject.activeSelf)
            {
                candidates.Add(candidate.gameObject);
            }
        }

        if (0 == candidates.Count)
        {
            return(false);
        }

        HintBlock hintBlock = candidates [Random.Range(0, candidates.Count)].GetComponent <HintBlock> ();

        hintBlock.gameObject.SetActive(true);
        activatedHintBlocks.Add(hintBlock);

        if (null == _blinkHintBlock)
        {
            _blinkHintBlock = StartCoroutine(BlinkHintBlock());
        }
        return(true);
    }
Esempio n. 2
0
        public TextInput()
        {
            InitializeComponent();

            Binding b1 = new Binding(nameof(HintText));

            b1.Source = this;
            HintBlock.SetBinding(TextBlock.TextProperty, b1);

            Binding b2 = new Binding(nameof(Proposal));

            b2.Mode   = BindingMode.TwoWay;
            b2.Source = this;
            b2.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            InputBox.SetBinding(TextBox.TextProperty, b2);

            Binding b3 = new Binding(nameof(HintFontSize));

            b3.Source = this;
            HintBlock.SetBinding(TextBlock.FontSizeProperty, b3);

            Binding b4 = new Binding(nameof(InputFontSize));

            b4.Source = this;
            InputBox.SetBinding(TextBox.FontSizeProperty, b4);

            this.MouseDown += TextInput_MouseDown;
        }
Esempio n. 3
0
    public override void Init(BlockSaveData saveData)
    {
        base.Init(saveData);

        sortingOrder = (int)Block.SortingOrder.Idle;
        mapTiles     = new List <MapTile>();

        transform.SetParent(Map.Instance.blocks, false);
        transform.localPosition = saveData.tilePositions [0];

        slot = GameObject.Instantiate <SlotBlock>(Map.Instance.slotBlockPrefab);
        slot.Init(saveData);

        if (saveData.hintPosition != saveData.slotPosition)
        {
            hint = GameObject.Instantiate <HintBlock> (Map.Instance.hintBlockPrefab);
            hint.Init(saveData);
        }

        transform.position = slot.transform.position;
        float minY = float.MaxValue;

        foreach (BlockTile blockTile in blockTiles)
        {
            minY = Mathf.Min(minY, blockTile.transform.position.y);
        }
        clickDeltaPosition   = transform.position;
        clickDeltaPosition.y = Mathf.Abs(transform.position.y - minY);
        if (false == Map.Instance.enabled)
        {
            colliderSize = new Vector3(2.0f, 2.0f, 1.0f);
        }
        transform.localScale = slot.transform.localScale;
        initPosition         = transform.position;
        mapTileCount         = 0;
        if (true == Map.Instance.editMode && null != hint)
        {
            transform.position   = hint.transform.position;
            transform.localScale = Vector3.one;
            initPosition         = hint.transform.position;
        }
    }
Esempio n. 4
0
    public override void OnDrop(Vector3 position)
    {
        sortingOrder = (int)SortingOrder.Idle;
        outline      = false;
        bool returnToSlotPosition = true;

        foreach (BlockTile blockTile in blockTiles)
        {
            if (null != blockTile.mapTile)
            {
                returnToSlotPosition = false;
                break;
            }
        }

        if (true == returnToSlotPosition)
        {
            initPosition = slot.transform.position;
            iTween.MoveTo(gameObject, slot.transform.position, 0.5f);
            colliderSize         = new Vector3(2.0f, 2.0f, 1.0f);
            transform.localScale = slot.transform.localScale;
            foreach (MapTile mapTile in mapTiles)
            {
                mapTile.block = null;
            }
            mapTiles = new List <MapTile> ();
            if (true == Map.Instance.editMode)
            {
                foreach (MapTile mapTile in Map.Instance.mapTiles)
                {
                    if (mapTile.id == id)
                    {
                        mapTile.spriteRenderer.color = Color.white;
                        mapTile.id = 0;
                    }
                }

                if (null != hint)
                {
                    hint.transform.SetParent(null);
                    DestroyImmediate(hint.gameObject);
                    hint = null;
                }
            }

            AudioManager.Instance.Play("BlockOut");
            return;
        }

        foreach (BlockTile blockTile in blockTiles)
        {
            if (null == blockTile.mapTile)
            {
                iTween.MoveTo(gameObject, initPosition, 0.2f);
                if (initPosition == slot.transform.position)
                {
                    colliderSize         = new Vector3(2.0f, 2.0f, 1.0f);
                    transform.localScale = slot.transform.localScale;
                }
                AudioManager.Instance.Play("BlockOut");
                return;
            }

            MapTile mapTile = blockTile.mapTile;
            if (false == Map.Instance.editMode && 0 == mapTile.id)
            {
                iTween.MoveTo(gameObject, initPosition, 0.2f);
                if (initPosition == slot.transform.position)
                {
                    colliderSize         = new Vector3(2.0f, 2.0f, 1.0f);
                    transform.localScale = slot.transform.localScale;
                }
                AudioManager.Instance.Play("BlockOut");
                return;
            }
            if (null != mapTile.block && this != mapTile.block)
            {
                iTween.MoveTo(gameObject, initPosition, 0.2f);
                if (initPosition == slot.transform.position)
                {
                    colliderSize         = new Vector3(2.0f, 2.0f, 1.0f);
                    transform.localScale = slot.transform.localScale;
                }
                AudioManager.Instance.Play("BlockOut");
                return;
            }
        }

        foreach (MapTile mapTile in mapTiles)
        {
            if (true == Map.Instance.editMode)
            {
                mapTile.id = 0;
            }
            mapTile.block = null;
        }
        mapTiles = new List <MapTile> ();

        foreach (BlockTile blockTile in blockTiles)
        {
            MapTile mapTile = blockTile.mapTile;
            mapTile.block = this;
            mapTile.id    = id;
            mapTiles.Add(mapTile);
        }

        initPosition       = position;
        transform.position = position;
        if (true == Map.Instance.editMode)
        {
            hint.transform.position = transform.position;
        }
        if (false == Map.Instance.editMode)
        {
            Game.Instance.moveCount++;
            Game.Instance.CheckLevelComplete();
        }
        AudioManager.Instance.Play("BlockDrop");
    }