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