Example #1
0
    private void Move(Vector2Int start, Vector2Int end)
    {
        if (Board.IsValidCellPosition(end))
        {
            if (!Board.self.HasObjectAt(end))
            {
                Board.self.RemoveObject(this.gameObject);
                Board.self.AddObjectAt(this.gameObject, end);

                Vector3 newPosition = Board.GetCellCenterWorld(end);

                ResetVisuals();
                animate.AnimateToPosition(transform.position, newPosition, .3f, Animate.RepeatMode.Once);
                // TODO(samkern): Simple shader to animate this to a flat white? :)
                //animate.AnimateToColor (model.pigeon.color, Color.red, .2f, Animate.RepeatMode.OnceAndBack);
                model.pigeon.sprite = ResourceManager.self.GetPigeonSprite(playerIndex, PigeonPose.Move);

                spawnDirectedVfx(moveVfx, start, end);

                Invoke("StopMoving", .3f);
            }
            else
            {
                InvalidMove();
            }
        }
        else
        {
            InvalidMove();
        }
    }