def create_effects(item, pos, real_z_pos, z_min): for _z in range(0, 2): _z_level = numbers.clip(z_min-_z, 0, maputils.get_map_size(WORLD_INFO['map'])[2]-1) if WORLD_INFO['map'][pos[0]][pos[1]][_z_level]: if int(round(real_z_pos))-_z_level<=2: if 'BLOODY' in item['flags']: if random.randint(0,50)<=35: effects.create_splatter('blood', [pos[0]+random.randint(-2, 2), pos[1]+random.randint(-2, 2), _z_level]) break
def create_effects(item, pos, real_z_pos, z_min): for _z in range(0, 2): _z_level = bad_numbers.clip( z_min - _z, 0, maputils.get_map_size(WORLD_INFO['map'])[2] - 1) if WORLD_INFO['map'][pos[0]][pos[1]][_z_level]: if int(round(real_z_pos)) - _z_level <= 2: if 'BLOODY' in item['flags']: if random.randint(0, 50) <= 35: effects.create_splatter('blood', [ pos[0] + random.randint(-2, 2), pos[1] + random.randint(-2, 2), _z_level ]) if 'SMOKING' in item['flags']: if random.randint(0, 50) <= 25: effects.create_smoke_streamer( [ pos[0] + random.randint(-item['size'], item['size']), pos[1] + random.randint(-item['size'], item['size']), _z_level ], item['size'] / 2, random.randint(item['size'] * 2, (item['size'] * 2) + 5)) if 'BURNING' in item['flags']: if random.randint(0, 50) <= 25: effects.create_smoke_cloud([ pos[0] + random.randint(-item['size'], item['size']), pos[1] + random.randint(-item['size'], item['size']), _z_level ], random.randint( item['size'], (item['size']) + 3), color=tcod.light_crimson) if 'max_speed' in item and is_moving(item): effects.create_vapor( item['pos'], 5, bad_numbers.clip(item['speed'] / 20, 0, 1))
def create_effects(item, pos, real_z_pos, z_min): for _z in range(0, 2): _z_level = bad_numbers.clip(z_min-_z, 0, maputils.get_map_size(WORLD_INFO['map'])[2]-1) if WORLD_INFO['map'][pos[0]][pos[1]][_z_level]: if int(round(real_z_pos))-_z_level<=2: if 'BLOODY' in item['flags']: if random.randint(0,50)<=35: effects.create_splatter('blood', [pos[0]+random.randint(-2, 2), pos[1]+random.randint(-2, 2), _z_level]) if 'SMOKING' in item['flags']: if random.randint(0, 50)<=25: effects.create_smoke_streamer([pos[0]+random.randint(-item['size'], item['size']), pos[1]+random.randint(-item['size'], item['size']), _z_level], item['size']/2, random.randint(item['size']*2, (item['size']*2)+5)) if 'BURNING' in item['flags']: if random.randint(0, 50)<=25: effects.create_smoke_cloud([pos[0]+random.randint(-item['size'], item['size']), pos[1]+random.randint(-item['size'], item['size']), _z_level], random.randint(item['size'], (item['size'])+3), color=tcod.light_crimson) if 'max_speed' in item and is_moving(item): effects.create_vapor(item['pos'], 5, bad_numbers.clip(item['speed']/20, 0, 1))
def create_intro_story(): _i = 2#random.randint(0, 2) _player = LIFE[SETTINGS['controlling']] WORLD_INFO['last_scheme_time'] = WORLD_INFO['ticks'] if _i == 1: #events.broadcast([{'text': 'You wake up from a deep sleep.'}, # {'text': 'You don\'t remember anything.', 'change_only': True}], 0, glitch=True) _spawn_items = ['leather backpack', 'M9', '9x19mm magazine'] for i in range(14): _spawn_items.append('9x19mm round') for item_name in _spawn_items: lfe.add_item_to_inventory(_player, items.create_item(item_name)) lfe.set_pos(_player, spawns.get_spawn_in_ref('farms')) #Dead dude _dead_guy = lfe.create_life('human', position=spawns.get_spawn_point_around(_player['pos'])) _dead_guy['dead'] = True if _player['pos'] == _dead_guy['pos']: lfe.set_pos(_dead_guy, [_dead_guy['pos'][0], _dead_guy['pos'][1], _dead_guy['pos'][2]+1]) for i in range(random.randint(15, 20)): effects.create_splatter('blood', spawns.get_spawn_point_around(_dead_guy['pos'], area=2), intensity=8) #Group nearby _bandit_group_spawn_chunk = alife.chunks.get_chunk_key_at(spawns.get_spawn_point_around(_player['pos'], min_area=60, area=90)) _bandit_group = spawns.generate_group('bandit', amount=3, spawn_chunks=[_bandit_group_spawn_chunk]) _friendly_group_spawn_chunk = alife.chunks.get_chunk_key_at(spawns.get_spawn_point_around(_player['pos'], min_area=10, area=20)) _friendly_group = spawns.generate_group('loner_riflemen', amount=2, spawn_chunks=[_friendly_group_spawn_chunk]) for ai in _bandit_group: _target = alife.brain.meet_alife(ai, _player) _target['last_seen_time'] = 1 _target['escaped'] = 1 _target['last_seen_at'] = _player['pos'][:] alife.stats.establish_hostile(ai, _player['id']) alife.stats.establish_hostile(_player, ai['id']) for target in _friendly_group: _target = alife.brain.meet_alife(ai, target) _target['last_seen_time'] = 1 _target['escaped'] = 1 _target['last_seen_at'] = target['pos'][:] alife.stats.establish_hostile(ai, target['id']) _group_target = alife.brain.meet_alife(target, ai) _group_target['last_seen_time'] = 1 _group_target['escaped'] = 1 _group_target['last_seen_at'] = ai['pos'][:] alife.stats.establish_hostile(target, ai['id']) #Wounded running away _wounded_guy = _friendly_group[0] if _wounded_guy['pos'] == _dead_guy['pos']: _wounded_guy['pos'][0] -= 1 alife.brain.meet_alife(_wounded_guy, _player)['alignment'] = 'trust' alife.brain.meet_alife(_player, _wounded_guy)['alignment'] = 'trust' #alife.speech.start_dialog(_wounded_guy, _player['id'], 'incoming_targets', force=True) alife.memory.create_question(_wounded_guy, _player['id'], 'incoming_targets') alife.memory.create_question(_wounded_guy, _player['id'], 'incoming_targets_follow', group_id=_wounded_guy['group']) elif _i == 2: lfe.set_pos(_player, spawns.get_spawn_in_ref('farms'))