public void Awake() { instance = this; thisObj = gameObject; rectT = thisObj.GetComponent <RectTransform>(); canvasGroup = thisObj.GetComponent <CanvasGroup>(); if (canvasGroup == null) { canvasGroup = thisObj.AddComponent <CanvasGroup>(); } //canvasGroup.alpha=0; canvasGroup.interactable = false; canvasGroup.blocksRaycasts = false; tooltipRectT = tooltipObj.GetComponent <RectTransform>(); tooltipObj.SetActive(false); indicator = (Transform)Instantiate(indicator); indicator.parent = transform; indicator.gameObject.SetActive(false); //thisObj.SetActive(false); rectT.anchoredPosition = new Vector3(0, 0, 0); }
private void NewClickTile(Tile tile) //only called in TouchMode { if (lastClickTile != tile) { lastClickTile = tile; //first click } else { GridManager.OnCursorDown(); //second click } UIInputOverlay.SetNewHoveredTile(lastClickTile); }
IEnumerator OnLeftCursorDown(int pointer = -1) { yield return(null); if (UI.IsCursorOnUI(pointer)) { yield break; } Tile tile = GridManager.GetHoveredTile(); if (tile != null) { if (GameControl.GetGamePhase() == _GamePhase.UnitDeployment) { GridManager.OnCursorDown(); yield break; } if (AbilityManager.InTargetMode()) { GridManager.OnCursorDown(); yield break; } heldTile = tile; holdStartedTime = Time.time; if (touchMode && GridManager.CanAttackTile(GridManager.GetHoveredTile())) { NewClickTile(tile); } else if (touchMode && GridManager.CanMoveToTile(GridManager.GetHoveredTile())) { NewClickTile(tile); } else { if (!GridManager.CanPerformAction(tile)) { //ClearLastClickTile(); dont call last click tile, we dont want to hide unit info if there's any lastClickTile = null; UIInputOverlay.SetNewHoveredTile(null); } else { GridManager.OnCursorDown(); //ClearLastClickTile() will be called as soon as unit move or attack or cast ability } } } else { ClearLastClickTile(); } //~ if(tile!=null){ //~ if(tile.unit!=null){ //~ if(!GameControl.CanSelectUnit(tile.unit)) UIUnitInfo.Show(tile); //~ else{ //~ GridManager.OnCursorDown(); //~ UIUnitInfo.Hide(); //~ return; //~ } //~ } //~ else UIUnitInfo.Hide(); //~ if(touchMode && GridManager.CanAttackTile(GridManager.GetHoveredTile())){ //~ NewClickTile(tile); //~ } //~ else if(touchMode && GridManager.CanMoveToTile(GridManager.GetHoveredTile())){ //~ NewClickTile(tile); //~ } //~ else{ //~ if(!GridManager.CanPerFormAction(tile)){ //~ //ClearLastClickTile(); dont call last click tile, we dont want to hide unit info if there's any //~ lastClickTile=null; //~ UIInputOverlay.SetNewHoveredTile(null); //~ } //~ else GridManager.OnCursorDown(); //ClearLastClickTile() will be called as soon as unit move or attack or cast ability //~ } //~ } //~ else ClearLastClickTile(); }
private void ClearLastClickTile() { lastClickTile = null; UIUnitInfo.Hide(); UIInputOverlay.SetNewHoveredTile(null); }