\begin{tikzpicture} [scale=0.8]
    %tikz doesn't support 4d coordinate systems. So I pieced it together with this
    \node[coordinate] (p1) at (1,0){};
    \node[coordinate] (p2) at (0,1){};
    \node[coordinate] (p3) at (-0.4,-0.2){};
    \node[coordinate] (x1) at ($(p1)+(p2)+(p3)$){};
    \node[coordinate] (x2) at ($(p1)-(p2)-(p3)$){};
    \node[coordinate] (x3) at ($(p3)-(p1)-(p2)$){};
    \node[coordinate] (x4) at ($(p2)-(p1)-(p3)$){};
    %a sample node
    %\node (1100) at ($1*(x1)+1*(x2)+0*(x3)+0*(x4)$) {hi};

    %I cannot get this to work. I've tried more than I expected.
    %\newcommand{\cord}[4]{${#1}*(x1)+{#2}*(x2)+{#3}*(x3)+{#4}*(x4)$};
    
    \node[coordinate] (1234)  at ($1*(x1)+2*(x2)+3*(x3)+4*(x4)$) {1234};
    \node[coordinate] (1243)  at ($1*(x1)+2*(x2)+4*(x3)+3*(x4)$) {1243};
    \node[coordinate] (2143)  at ($2*(x1)+1*(x2)+4*(x3)+3*(x4)$) {2143};
    \node[coordinate] (2134)  at ($2*(x1)+1*(x2)+3*(x3)+4*(x4)$) {2134};
    \node[coordinate] (2314)  at ($2*(x1)+3*(x2)+1*(x3)+4*(x4)$) {2314};
    \node[coordinate] (2341)  at ($2*(x1)+3*(x2)+4*(x3)+1*(x4)$) {2341};
    \node[coordinate] (2431)  at ($2*(x1)+4*(x2)+3*(x3)+1*(x4)$) {2431};
    \node[coordinate] (2413)  at ($2*(x1)+4*(x2)+1*(x3)+3*(x4)$) {2413};
    \node[coordinate] (4213)  at ($4*(x1)+2*(x2)+1*(x3)+3*(x4)$) {4213};
    \node[coordinate] (4231)  at ($4*(x1)+2*(x2)+3*(x3)+1*(x4)$) {4231};
    \node[coordinate] (4321)  at ($4*(x1)+3*(x2)+2*(x3)+1*(x4)$) {4321};
    \node[coordinate] (4312)  at ($4*(x1)+3*(x2)+1*(x3)+2*(x4)$) {4312};
    \node[coordinate] (4132)  at ($4*(x1)+1*(x2)+3*(x3)+2*(x4)$) {4132};
    \node[coordinate] (4123)  at ($4*(x1)+1*(x2)+2*(x3)+3*(x4)$) {4123};
    \node[coordinate] (1423)  at ($1*(x1)+4*(x2)+2*(x3)+3*(x4)$) {1423};
    \node[coordinate] (1432)  at ($1*(x1)+4*(x2)+3*(x3)+2*(x4)$) {1432};
    \node[coordinate] (1342)  at ($1*(x1)+3*(x2)+4*(x3)+2*(x4)$) {1342};
    \node[coordinate] (1324)  at ($1*(x1)+3*(x2)+2*(x3)+4*(x4)$) {1324};
    \node[coordinate] (3124)  at ($3*(x1)+1*(x2)+2*(x3)+4*(x4)$) {3124};
    \node[coordinate] (3142)  at ($3*(x1)+1*(x2)+4*(x3)+2*(x4)$) {3142};
    \node[coordinate] (3412)  at ($3*(x1)+4*(x2)+1*(x3)+2*(x4)$) {3412};
    \node[coordinate] (3421)  at ($3*(x1)+4*(x2)+2*(x3)+1*(x4)$) {3421};
    \node[coordinate] (3241)  at ($3*(x1)+2*(x2)+4*(x3)+1*(x4)$) {3241};
    \node[coordinate] (3214)  at ($3*(x1)+2*(x2)+1*(x3)+4*(x4)$) {3214};


    \def\backedges{ (4123) / (4213) , (4321) / (4312) , (4132) / (4231) , (3142) / (3241)  }

    \def\frontedges{(2134) / (1234) , (2143) / (1243) , (2341) / (1342) , (2431) / (1432) , (3421) / (3412) , (3124) / (3214) , (2314) / (1324) , (2413) / (1423) , (2143) / (2134) , (2134) / (3124) , (2341) / (2431) , (2431) / (3421)}


\tikzset{vertex/.style={}}

    \node[fill=purple!0!white,draw=black] (w1) at ($3.5*(x1)+-0.5*(x2)+3.5*(x3)+3.5*(x4)$) {w1};
    \node[fill=purple!0!white,draw=black] (w3) at ($3.5*(x1)+3.5*(x2)+3.5*(x3)+-0.5*(x4)$) {w3};
    \node[coordinate] (1111) at ($2.5*(x1)+2.5*(x2)+2.5*(x3)+2.5*(x4)$) {};
    \node[coordinate] (hw1) at ($3*(x1)+1*(x2)+3*(x3)+3*(x4)$) {};
    \node[coordinate] (hw2) at ($3*(x1)+3*(x2)+1*(x3)+3*(x4)$) {};
    \node[coordinate] (hw3) at ($3*(x1)+3*(x2)+3*(x3)+1*(x4)$) {};
    \node[coordinate] (hw4) at ($1*(x1)+3*(x2)+3*(x3)+3*(x4)$) {};


    \draw[dashed,->] (hw1) -- (w1);
    \draw[dashed,->] (hw3) -- (w3);
    \draw[fill=green,fill opacity=0.2,dotted] (4321) -- (4231) -- (3241) -- (2341) -- (2431) -- (3421) -- (4321);%w1
    \draw[fill=green,fill opacity=0.2,dotted] (2134) -- (2143) -- (3142) -- (4132) -- (4123) -- (3124) -- (2134);%w3
    \draw[dashed] (hw3) -- (1111);
    \draw[dashed] (hw1) -- (1111);
    \draw[dashed] (hw2) -- (1111);
    \draw[dashed] (hw4) -- (1111);

    \foreach \x/\y in \backedges{
       \draw[dotted] \x -- \y;
    }
    
    \foreach \x/\y in \frontedges{
       \draw \x -- \y;
    }
\node[vertex] at (3142){4132};
\node[vertex] at (4132){4231};
\node[vertex] at (3241){3142};
\node[vertex] at (4231){3241};
\node[vertex] at (2134){4213};
\node[vertex] at (2143){4123};
\node[vertex] at (3124){4312};
\node[vertex] at (4123){4321};
\node[vertex] at (2341){2143};
\node[vertex] at (2431){1243};
\node[vertex] at (3421){1342};
\node[vertex] at (4321){2341};

    \draw[fill=green,fill opacity=0.2] (1234) -- (1243) -- (1342) -- (1432) -- (1423) -- (1324) -- (1234);%w4
    \draw[fill=green,fill opacity=0.2] (4312) -- (4213) -- (3214) -- (2314) -- (2413) -- (3412) -- (4312);%w2
    \node[fill=purple!0!white,draw=black] (w2) at ($3.5*(x1)+3.5*(x2)+-0.5*(x3)+3.5*(x4)$) {w2};
    \node[fill=purple!0!white,draw=black] (w4) at ($-0.5*(x1)+3.5*(x2)+3.5*(x3)+3.5*(x4)$) {w4};
    \draw[dashed,->] (hw2) -- (w2);
    \draw[dashed,->] (hw4) -- (w4);
    
\node[vertex] at (1234){3214};
\node[vertex] at (1243){3124};
\node[vertex] at (1324){2314};
\node[vertex] at (1342){2134};
\node[vertex] at (1423){1324};
\node[vertex] at (1432){1234};

\node[vertex] at (2314){2413};
\node[vertex] at (2413){1423};
\node[vertex] at (3214){3412};
\node[vertex] at (3412){1432};
\node[vertex] at (4213){3421};
\node[vertex] at (4312){2431};

            
\end{tikzpicture}