Example #1
0
def add_member(life, group_id, life_id):
    if is_member(life, group_id, life_id):
        raise Exception(
            '%s failed to add new member: %s is already a member of group: %s'
            % (' '.join(life['name']), ' '.join(
                LIFE[life_id]['name']), group_id))

    if not life['id'] == life_id:
        _target = brain.knows_alife_by_id(life, life_id)

        if _target:
            if _target['group'] == group_id:
                pass
            elif _target and _target['group']:
                lfe.memory(LIFE[life_id],
                           'left group for group',
                           left_group=_target['group'],
                           group=group_id)
                remove_member(life, _target['group'], life_id)

            _target['group'] = group_id
        else:
            _target = brain.meet_alife(life, LIFE[life_id])

        stats.establish_trust(life, life_id)
    elif life['id'] == life_id and life[
            'group'] and not life['group'] == group_id:
        remove_member(life, life['group'], life_id)

    _group = get_group(life, group_id)
    for member in _group['members']:
        brain.meet_alife(LIFE[member], LIFE[life_id])

    if _group['shelter']:
        LIFE[life_id]['shelter'] = _group['shelter']
        lfe.memory(LIFE[life_id],
                   'shelter founder',
                   shelter=_group['shelter'],
                   founder=_group['leader'])

    _group['members'].append(life_id)

    if _group['leader'] and 'player' in LIFE[_group['leader']]:
        _text = '%s has joined your group.' % ' '.join(LIFE[life_id]['name'])
        gfx.message(_text, style='good')

        if sight.can_see_target(LIFE[_group['leader']], life_id):
            logic.show_event(_text, life=LIFE[life_id], delay=1)

    logging.debug(
        '%s added %s to group \'%s\'' %
        (' '.join(life['name']), ' '.join(LIFE[life_id]['name']), group_id))
Example #2
0
def add_member(life, group_id, life_id):
	if is_member(life, group_id, life_id):
		raise Exception('%s failed to add new member: %s is already a member of group: %s' % (' '.join(life['name']), ' '.join(LIFE[life_id]['name']), group_id))
	
	if not life['id'] == life_id:
		_target = brain.knows_alife_by_id(life, life_id)
		
		if _target:
			if _target['group'] == group_id:
				pass
			elif _target and _target['group']:
				lfe.memory(LIFE[life_id], 'left group for group', left_group=_target['group'], group=group_id)
				remove_member(life, _target['group'], life_id)
			
			_target['group'] = group_id
		else:
			_target = brain.meet_alife(life, LIFE[life_id])
		
		stats.establish_trust(life, life_id)
	elif life['id'] == life_id and life['group'] and not life['group'] == group_id:
		remove_member(life, life['group'], life_id)
	
	_group = get_group(life, group_id)
	for member in _group['members']:
		brain.meet_alife(LIFE[member], LIFE[life_id])
	
	if _group['shelter']:
		LIFE[life_id]['shelter'] = _group['shelter']
		lfe.memory(LIFE[life_id], 'shelter founder', shelter=_group['shelter'], founder=_group['leader'])
	
	_group['members'].append(life_id)
	
	if _group['leader'] and 'player' in LIFE[_group['leader']]:
		_text = '%s has joined your group.' % ' '.join(LIFE[life_id]['name'])
		gfx.message(_text, style='good')
		
		if sight.can_see_target(LIFE[_group['leader']], life_id):
			logic.show_event(_text, life=LIFE[life_id], delay=1)
	
	logging.debug('%s added %s to group \'%s\'' % (' '.join(life['name']), ' '.join(LIFE[life_id]['name']), group_id))
Example #3
0
def meet_alife(life, target):
    if life['id'] == target['id']:
        raise Exception('Life \'%s\' learned about itself. Stopping.' %
                        ' '.join(life['name']))

    if target['id'] in life['know']:
        return life['know'][target['id']]

    life['know'][target['id']] = {
        'life': target,
        'danger': 0,
        'trust': 0,
        'alignment': 'neutral',
        'last_seen_time': -1,
        'time_visible': 0,
        'met_at_time': WORLD_INFO['ticks'],
        'last_seen_at': target['pos'],
        'last_encounter_time': 0,
        'items': [],
        'escaped': False,
        'asleep': False,
        'state': None,
        'state_tier': None,
        'group': None,
        'dead': False,
        'snapshot': {},
        'sent': {},
        'questions': [],
        'orders': {},
        'orderid': 1,
        'flags': {}
    }

    if factions.is_enemy(life, target['id']):
        stats.establish_hostile(life, target['id'])
    else:
        stats.establish_trust(life, target['id'])

    #logging.debug('%s met %s.' % (' '.join(life['name']), ' '.join(target['name'])) )
    return life['know'][target['id']]
Example #4
0
def meet_alife(life, target):
	if life['id'] == target['id']:
		raise Exception('Life \'%s\' learned about itself. Stopping.' % ' '.join(life['name']))
	
	if target['id'] in life['know']:
		return life['know'][target['id']]
	
	life['know'][target['id']] = {'life': target,
		'danger': 0,
		'trust': 0,
		'alignment': 'neutral',
		'last_seen_time': -1,
		'time_visible': 0,
		'met_at_time': WORLD_INFO['ticks'],
		'last_seen_at': target['pos'],
		'last_encounter_time': 0,
		'items': [],
		'escaped': False,
		'asleep': False,
		'state': None,
		'state_tier': None,
		'group': None,
		'dead': False,
		'snapshot': {},
		'sent': {},
		'questions': [],
		'orders': {},
		'orderid': 1,
		'flags': {}}
	
	if factions.is_enemy(life, target['id']):
		stats.establish_hostile(life, target['id'])
	else:
		stats.establish_trust(life, target['id'])
	
	#logging.debug('%s met %s.' % (' '.join(life['name']), ' '.join(target['name'])) )
	return life['know'][target['id']]