コード例 #1
0
ファイル: stats.py プロジェクト: athros/Reactor-3
def desires_group(life, group_id):
	if life['group']:
		return wants_to_abandon_group(life, life['group'], with_new_group_in_mind=group_id)
	
	if judgement.judge_group(life, group_id)>get_minimum_group_score(life):
		return True
	
	return False
コード例 #2
0
ファイル: groups.py プロジェクト: flags/Reactor-3
def get_jobs(life, group_id):
	_group = get_group(life, group_id)
	_jobs = []
	_leader = LIFE[_group['leader']]
	
	if not has_camp(group_id):
		_nearest_camp = camps.get_nearest_known_camp(_leader)
		
		if _leader['known_camps']:
			_j = jobs.create_job(_leader, 'Raid', gist='start_raid', description='Raid camp %s.' % _nearest_camp['id'])
			_pos = lfe.get_current_chunk(_leader)['pos']
			_chunk_key = lfe.get_current_chunk_id(_leader)
		
			jobs.add_task(_j, '0', 'announce_to_group',
			              action.make_small_script(function='announce_to_group',
			                                       kwargs={'group_id': group_id,
			                                               'gist': 'announce_group_job',
			                                               'message': jobs.get_job(_j)['description'],
			                                               'job_id': _j}),
			              player_action=action.make_small_script(function='always'),
			              description='Gather group members.')
			jobs.add_task(_j, '1', 'move_to_chunk',
			              action.make_small_script(function='travel_to_position',
			                                       kwargs={'pos': _pos}),
			              player_action=action.make_small_script(function='is_in_chunk',
	                                           kwargs={'chunk_key': _chunk_key}),
			              description='Travel to position %s, %s' % (_pos[0], _pos[1]),
				          delete_on_finish=False)
			jobs.add_task(_j, '2', 'wait_for_number_of_group_members_in_chunk',
			              action.make_small_script(function='number_of_alife_in_chunk_matching',
			                                       kwargs={'amount': 2,
			                                               'chunk_key': _chunk_key,
			                                               'matching': {'group': _leader['group']}}),
			              description='Wait until everyone arrives.')
			#jobs.add_task(_j, '3', 'talk',
			#              action.make_small_script(function='travel_to_position',
			#                                       kwargs={'pos': chunks.get_nearest_chunk_in_list(_leader['pos'], camps.get_camp(_nearest_camp['id'])['reference'])}),
			#              requires=['1'],
			#              delete_on_finish=False)
			
			_jobs.append(_j)
	
	if len(_leader['known_groups'])>1:
		_lowest = {'score': 0, 'group': None}
		for group_id in [g for g in _leader['known_groups'] if not g==_leader['group']]:
			_score = judgement.judge_group(_leader, group_id)
			
			if not _lowest['group'] or _score < _lowest['score']:
				_lowest['score'] = _score
				_lowest['group'] = group_id
			
		
		print 'RAID', _lowest
	else:
		print 'ony one'
	
	return _jobs
コード例 #3
0
ファイル: stats.py プロジェクト: penny64/Reactor-3
def desires_group(life, group_id):
    if life['group']:
        return wants_to_abandon_group(life,
                                      life['group'],
                                      with_new_group_in_mind=group_id)

    if judgement.judge_group(life, group_id) > get_minimum_group_score(life):
        return True

    return False
コード例 #4
0
ファイル: stats.py プロジェクト: penny64/Reactor-3
def get_minimum_group_score(life):
    if life['group']:
        return judgement.judge_group(life, life['group'])

    return 0
コード例 #5
0
def get_jobs(life, group_id):
    _group = get_group(life, group_id)
    _jobs = []
    _leader = LIFE[_group['leader']]

    if not has_camp(group_id):
        _nearest_camp = camps.get_nearest_known_camp(_leader)

        if _leader['known_camps']:
            _j = jobs.create_job(_leader,
                                 'Raid',
                                 gist='start_raid',
                                 description='Raid camp %s.' %
                                 _nearest_camp['id'])
            _pos = lfe.get_current_chunk(_leader)['pos']
            _chunk_key = lfe.get_current_chunk_id(_leader)

            jobs.add_task(
                _j,
                '0',
                'announce_to_group',
                action.make_small_script(function='announce_to_group',
                                         kwargs={
                                             'group_id':
                                             group_id,
                                             'gist':
                                             'announce_group_job',
                                             'message':
                                             jobs.get_job(_j)['description'],
                                             'job_id':
                                             _j
                                         }),
                player_action=action.make_small_script(function='always'),
                description='Gather group members.')
            jobs.add_task(
                _j,
                '1',
                'move_to_chunk',
                action.make_small_script(function='travel_to_position',
                                         kwargs={'pos': _pos}),
                player_action=action.make_small_script(
                    function='is_in_chunk', kwargs={'chunk_key': _chunk_key}),
                description='Travel to position %s, %s' % (_pos[0], _pos[1]),
                delete_on_finish=False)
            jobs.add_task(_j,
                          '2',
                          'wait_for_number_of_group_members_in_chunk',
                          action.make_small_script(
                              function='number_of_alife_in_chunk_matching',
                              kwargs={
                                  'amount': 2,
                                  'chunk_key': _chunk_key,
                                  'matching': {
                                      'group': _leader['group']
                                  }
                              }),
                          description='Wait until everyone arrives.')
            #jobs.add_task(_j, '3', 'talk',
            #              action.make_small_script(function='travel_to_position',
            #                                       kwargs={'pos': chunks.get_nearest_chunk_in_list(_leader['pos'], camps.get_camp(_nearest_camp['id'])['reference'])}),
            #              requires=['1'],
            #              delete_on_finish=False)

            _jobs.append(_j)

    if len(_leader['known_groups']) > 1:
        _lowest = {'score': 0, 'group': None}
        for group_id in [
                g for g in _leader['known_groups'] if not g == _leader['group']
        ]:
            _score = judgement.judge_group(_leader, group_id)

            if not _lowest['group'] or _score < _lowest['score']:
                _lowest['score'] = _score
                _lowest['group'] = group_id

        print 'RAID', _lowest
    else:
        print 'ony one'

    return _jobs
コード例 #6
0
ファイル: stats.py プロジェクト: athros/Reactor-3
def get_minimum_group_score(life):
	if life['group']:
		return judgement.judge_group(life, life['group'])
	
	return 0