/// <summary> /// Clona los datos /// </summary> public override MovementBaseModel Clone() { MovementFigureModel target = new MovementFigureModel(new MovementTurnModel(Turn.Number, Turn.Type), Content); // Clona los datos internos CloneInner(target); // Clona las propiedades target.Color = Color; target.Type = Type; target.OriginPiece = OriginPiece; target.From = new CellModel(From); target.To = new CellModel(To); target.PromotedPiece = PromotedPiece; target.Captured = Captured?.Clone(); if (CapturedEnPassant != null) { target.CapturedEnPassant = new CellModel(CapturedEnPassant); } target.IsCheck = IsCheck; target.IsDoubleCheck = IsDoubleCheck; target.IsCheck = IsCheckMate; target.IsDrawOffered = IsDrawOffered; // Devuelve el objeto return(target); }