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))
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))
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']]
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']]