public void findPartner() {
org.ascape.util.Conditional partnerCondition = new org.ascape.util.Conditional() {
private static final long serialVersionUID = 6846144446402098985L;
public boolean meetsCondition(Object partnerCell) {
partnerCell = ((org.ascape.model.HostCell) partnerCell).getOccupant();
if (partnerCell instanceof Individual) {
Individual partner = (Individual) partnerCell;
return partner.getAge() == getAge();
} else {
return false;
}
}
};
Individual partner = null;
org.ascape.model.space.Location partnerLocation = ((org.ascape.model.space.Discrete) getWikiExample().getCity()
.getSpace()).findRandomWithin(((org.ascape.model.CellOccupant) this).getHostCell(), partnerCondition,
false, partner.getVision());
if (partnerLocation != null) {
partner = (Individual) ((org.ascape.model.HostCell) partnerLocation).getOccupant();
}
if (partner != null) {
Block partnerNeighbor = (Block) ((org.ascape.model.space.Discrete) getWikiExample().getCity().getSpace())
.findRandomAvailableNeighbor(((org.ascape.model.CellOccupant) partner).getHostCell());
if (partnerNeighbor != null) {
moveTo(partnerNeighbor);
}
}
}