public void ShowTargetIndicator(bool hover = false, Action <UnitScript> onHover = null) { if (_hoveredState == HoveredState.Hovered) { return; } if ((!_playerScript.IsMe || !_playerScript.Player.IsMyTurn) && !hover) { return; } if (_unit.State == UnitState.GettingReady && !hover) { return; } LeanTween.cancel(_unitSelectorGraphic); _unitSelectorGraphic.transform.localScale = new Vector3(1f, 1f, 1f); LeanTween.alpha(_unitSelectorGraphic, 1f, 0.2f); LeanTween.scale(_unitSelectorGraphic, _unitSelectorGraphic.transform.localScale * 1.1f, 0.2f) .setEaseInOutCirc() .setLoopPingPong(-1); _hoveredState = HoveredState.Hovered; onHover?.Invoke(this); }
public void Ready(SpawnPointScript spawnPoint, PlayerScript player, Unit unit) { _targetingData = new UnitTarget(); _hoveredState = HoveredState.NotHovered; _unitAction = UnitAction.Idle; _unit = unit; _playerScript = player; _spawnPointScript = spawnPoint; transform.localPosition = Vector3.zero; _unitSprite.flipX = !_playerScript.IsMe; _spawnPointScript.SetOccupied(); _selectorArrows = new GameObject[_arrowInstanceCount]; for (int i = 0; i < _arrowInstanceCount; i++) { _selectorArrows[i] = Instantiate(_selectorArrow, transform); _selectorArrows[i].GetComponentInChildren <SpriteRenderer>().enabled = false; if (i != _arrowInstanceCount - 1) { _selectorArrows[i].transform.localScale *= 0.7f; } } _sleepEffect.SetActive(true); UpdateTexts(); ReadyEvents(); }
public void HideTargetIndicator(Action <UnitScript> onExit = null) { if (_hoveredState == HoveredState.NotHovered) { return; } _hoveredState = HoveredState.NotHovered; LeanTween.cancel(_unitSelectorGraphic); LeanTween.alpha(_unitSelectorGraphic, 0f, 0f); _unitSelectorGraphic.transform.localScale = new Vector3(1f, 1f, 1f); onExit?.Invoke(this); if (_targetingData.currentTarget != null) { _targetingData.currentTarget.SetDeathMarkerActive(false); } SetDeathMarkerActive(false); }