/// <summary> /// Tries to move actor based on command. /// </summary> /// <param name="_actor">Actor to move</param> /// <param name="_command">Command to execute</param> /// <returns>Success or fail</returns> public bool TryCommand(Actor _actor, Commands _command) { if (_actor == null) { return(false); } TilePosition desiredPosition = BoardMethod.GetTileFromCommand(_actor, _command); if (!BoardMethod.isPositionEmpty(desiredPosition)) { Debug.Log(_actor.actorName + " Desired position isn't empty"); Actor _actorInPosition = BoardMethod.GetActorInPosition(desiredPosition); if (_actorInPosition != null) { _actor.Attack(_actorInPosition); return(true); } return(false); } _actor.currentPosition = desiredPosition; Debug.Log(_actor.actorName + " command is valid, let's try moving"); Vector3 _newTilePosition = mapTiles[desiredPosition.x, desiredPosition.y].transform.position; _actor.transform.DOMove(_newTilePosition, 0.25f).SetEase(Ease.OutBack); return(true); }