示例#1
0
unit_const_ptr basic_unit_filter_impl::first_match_on_map() const {
	const unit_map & units = fc_.get_disp_context().units();
	for(unit_map::const_iterator u = units.begin(); u != units.end(); u++) {
		if (matches(*u,u->get_location(),nullptr)) {
			return u.get_shared_ptr();
		}
	}
	return unit_const_ptr();
}
示例#2
0
unit_const_ptr find_backup_leader(const unit & leader)
{
	assert(leader.can_recruit());
	assert(resources::gameboard->map().is_keep(leader.get_location()));
	for (unit_map::const_iterator unit = resources::units->begin(); unit != resources::units->end(); unit++)
	{
		if (unit->can_recruit() && unit->id() != leader.id())
		{
			if ( dynamic_cast<game_state*>(resources::filter_con)->can_recruit_on(*unit, leader.get_location()) )
				return unit.get_shared_ptr();
		}
	}
	return unit_const_ptr();
}