public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } if (ReferenceEquals(this, obj)) { return(true); } CrazyhouseDetailedMove move = (CrazyhouseDetailedMove)obj; if (move.IsDrop != IsDrop) { return(false); } if (!move.IsDrop) { return(OriginalPosition.Equals(move.OriginalPosition) && NewPosition.Equals(move.NewPosition) && Player == move.Player && Promotion == move.Promotion && Piece == move.Piece && IsCapture == move.IsCapture && Castling == move.Castling); } else { return(Player == move.Player && Drop.Equals(move.Drop)); } }
protected virtual void AddDetailedMove(CrazyhouseDetailedMove cdm) { base.AddDetailedMove(cdm); }