// Update is called once per frame void Update() { if (lastHoveredTile != null) { UpdateTooltipPos(); } if (UIMainControl.InTouchMode()) { return; } if (UI.IsCursorOnUI(-1)) { if (tooltipObj.activeInHierarchy) { _SetNewHoveredTile(null); } return; } Tile tile = GridManager.GetHoveredTile(); if (tile != lastHoveredTile) { _SetNewHoveredTile(tile); } }
//~ void OnRightCursorDown(int pointer=-1){ //~ if(GridManager.GetHoveredTile()!=null) GridManager.OnCursorDown(); //~ ClearLastClickTile(); //~ } void UpdateTapAndHold(bool isHeld, int pointerID) { if (isHeld && !UI.IsCursorOnUI(pointerID)) { Tile tile = GridManager.GetHoveredTile(); if (tile != null && tile.unit != null) // && touchMode && !GameControl.CanSelectUnit(tile.unit)) { if (heldTile == tile) { if (holdStartedTime > 0 && Time.time - holdStartedTime > holdThreshhold) { UIUnitInfo.Show(tile); } return; } } } holdStartedTime = -1f; UIUnitInfo.Hide(); }
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(); }