void Troop::recycle(Pet* pet) { //if already recycled if (pet->getIndex() >= cap) return; kickOut(pet); removeChild(pet, false); //todo: use a function in pet to reset the properties int newIndex = pet->getIndex() + cap; pet->setType(randomType()); pet->setIndex(newIndex); int c = newIndex % 7; int r = 3 - newIndex / 7; pet->setPosition(ccp(Unit::GRID_SIZE * c + Unit::GRID_SIZE/2, Unit::GRID_SIZE * r + Unit::GRID_SIZE/2)); pets->replaceObjectAtIndex(newIndex, pet); }
TermCollection( unsigned int nofTerms, unsigned int diffrange) { if (nofTerms < 1) { std::cerr << "ERROR number of distinct terms in the collection has to be at least 1" << std::endl; nofTerms = 1; } std::set<Term> termset; while (termset.size() < nofTerms) { unsigned int ti = termset.size(); for (; ti < nofTerms; ++ti) { int diff = g_random.get( 0, (int)diffrange) - (int)diffrange/2; termset.insert( Term( randomType(), randomTerm(), diff)); } } std::set<Term>::const_iterator ti = termset.begin(), te = termset.end(); for (; ti != te; ++ti) { termar.push_back( *ti); } }