def tick_world(): WORLD_INFO['ticks'] += 1 alfe.groups.get_group_relationships() if WORLD_INFO['real_time_of_day'] < WORLD_INFO['length_of_day']: WORLD_INFO['real_time_of_day'] += WORLD_INFO['time_scale'] else: WORLD_INFO['real_time_of_day'] = 0 WORLD_INFO['day'] += 1 weather.change_weather() if WORLD_INFO['real_time_of_day'] >= WORLD_INFO[ 'length_of_day'] - 22.00 or WORLD_INFO[ 'real_time_of_day'] <= WORLD_INFO['length_of_day'] * .15: if WORLD_INFO['time_of_day'] == 'day': gfx.message('Night falls.') WORLD_INFO['time_of_day'] = 'night' else: if WORLD_INFO['time_of_day'] == 'night': gfx.message('The sun rises.') WORLD_INFO['time_of_day'] = 'day' if WORLD_INFO['dynamic_spawn_interval'][0] > 0: WORLD_INFO['dynamic_spawn_interval'][0] -= 1 elif not WORLD_INFO['dynamic_spawn_interval'][0]: spawns.generate_life(random.choice(['loner', 'bandit'])) WORLD_INFO['dynamic_spawn_interval'][0] = random.randint( WORLD_INFO['dynamic_spawn_interval'][1][0], WORLD_INFO['dynamic_spawn_interval'][1][1]) logging.info('Reset life spawn clock: %s' % WORLD_INFO['dynamic_spawn_interval'][0]) if WORLD_INFO['wildlife_spawn_interval'][0] > 0: WORLD_INFO['wildlife_spawn_interval'][0] -= 1 elif not WORLD_INFO['wildlife_spawn_interval'][0]: worldgen.generate_wildlife() WORLD_INFO['wildlife_spawn_interval'][0] = random.randint( WORLD_INFO['wildlife_spawn_interval'][1][0], WORLD_INFO['wildlife_spawn_interval'][1][1]) logging.info('Reset wildlife spawn clock: %s' % WORLD_INFO['wildlife_spawn_interval'][0]) #situations.form_scheme() #situations.execute_scheme() alfe.factions.direct() core.evaluate_overwatch_mood() cache.scan_cache()
def tick_world(): WORLD_INFO['ticks'] += 1 alfe.groups.get_group_relationships() if WORLD_INFO['real_time_of_day'] < WORLD_INFO['length_of_day']: WORLD_INFO['real_time_of_day'] += WORLD_INFO['time_scale'] else: WORLD_INFO['real_time_of_day'] = 0 WORLD_INFO['day'] += 1 weather.change_weather() if WORLD_INFO['real_time_of_day']>=WORLD_INFO['length_of_day']-22.00 or WORLD_INFO['real_time_of_day']<=WORLD_INFO['length_of_day']*.15: if WORLD_INFO['time_of_day'] == 'day': gfx.message('Night falls.') WORLD_INFO['time_of_day'] = 'night' else: if WORLD_INFO['time_of_day'] == 'night': gfx.message('The sun rises.') WORLD_INFO['time_of_day'] = 'day' if WORLD_INFO['dynamic_spawn_interval'][0]>0: WORLD_INFO['dynamic_spawn_interval'][0] -= 1 elif not WORLD_INFO['dynamic_spawn_interval'][0]: spawns.generate_life(random.choice(['loner', 'bandit'])) WORLD_INFO['dynamic_spawn_interval'][0] = random.randint(WORLD_INFO['dynamic_spawn_interval'][1][0], WORLD_INFO['dynamic_spawn_interval'][1][1]) logging.info('Reset life spawn clock: %s' % WORLD_INFO['dynamic_spawn_interval'][0]) if WORLD_INFO['wildlife_spawn_interval'][0]>0: WORLD_INFO['wildlife_spawn_interval'][0] -= 1 elif not WORLD_INFO['wildlife_spawn_interval'][0]: worldgen.generate_wildlife() WORLD_INFO['wildlife_spawn_interval'][0] = random.randint(WORLD_INFO['wildlife_spawn_interval'][1][0], WORLD_INFO['wildlife_spawn_interval'][1][1]) logging.info('Reset wildlife spawn clock: %s' % WORLD_INFO['wildlife_spawn_interval'][0]) situations.form_scheme() situations.execute_scheme() artifacts.tick_fields() alfe.factions.direct() core.evaluate_overwatch_mood() cache.scan_cache()
def execute_scheme(): if not WORLD_INFO['scheme']: return False _event = None for event in WORLD_INFO['scheme']: if event['time'] <= WORLD_INFO['ticks']: _event = event break if not _event: return False _situation = core.get_player_situation() _player = LIFE[SETTINGS['controlling']] if 'sound' in _event: alife.noise.create(_event['pos'], _event['volume'], _event['sound'][0], _event['sound'][1]) if 'radio' in _event and _situation['has_radio']: gfx.message('%s: %s' % (_event['radio'][0], _event['radio'][1]), style='radio') if 'glitch' in _event: gfx.glitch_text(_event['glitch'], change_text_only=_event['change']) if 'life' in _event: _life = spawns.generate_life(_event['life']['type'], position=_event['life']['position'])[0] if 'injuries' in _event['life']: for limb in _event['life']['injuries']: lfe.add_wound(_life, limb, **_event['life']['injuries'][limb]) if 'group' in _event: if 'stage' in _event: alife.groups.set_stage(LIFE[_event['member']], _event['group'], _event['stage']) if _event['stage'] == STAGE_RAIDING: alife.groups.raid(LIFE[_event['member']], _event['group'], _event['flags']['chunk_key']) WORLD_INFO['scheme'].remove(_event)