Cell cell = getUnit().move(getDnaParams().getSpecies(), downMove, rightMove, getProgenitor());
if (oldX != cell.getX() || oldY != cell.getY()) {
Resource resource = getUnit().getCell().getResource();
int artisticType = resource.getType();
if (artisticType == ResourceConstants.ARTISTIC_TRACE_RESOURCE) {
TraceResource traceResource = (TraceResource) resource;
traceResource.setColor(getInternalColor());
traceResource.setTracer(this.toString());
duplicate();
} else if (artisticType == ResourceConstants.ARTISTIC_COLOR_RESOURCE) {
TraceResource traceResource = new TraceResource(this.toString());
traceResource.setColor(getInternalColor());
getUnit().getCell().setResource(traceResource);
}
if (getBirthCell() == null) {
setBirthCell(new Cell(cell.getX(), cell.getY(), cell.getResource(), null));
System.err.println("BIRTH CELL: (" + getBirthCell().getX() + "," + getBirthCell().getY() + ") for tracer " + this.toString());