@Override public Combat clone() throws CloneNotSupportedException { Combat c = (Combat) super.clone(); c.p1 = p1.clone(); c.p2 = p2.clone(); c.p1.finishClone(c.p2); c.p2.finishClone(c.p1); c.p1Data = (CombatantData) p1Data.clone(); c.p2Data = (CombatantData) p2Data.clone(); c.stance = getStance().clone(); c.state = state; if (c.getStance().top == p1) { c.getStance().top = c.p1; } if (c.getStance().top == p2) { c.getStance().top = c.p2; } if (c.getStance().bottom == p1) { c.getStance().bottom = c.p1; } if (c.getStance().bottom == p2) { c.getStance().bottom = c.p2; } return c; }