Exemple #1
0
def create_flea(x=0, y=0, hazard=False):
	if hazard:
		_group = 'hazards'
	else:
		_group = 'enemies'
	
	_entity = create(sprite_name='diamond_body.png', group=_group, x=x, y=y, acceleration=.4, speed=30, max_velocity=30, turn_rate=0.8)
	_entity['current_target'] = None
	_entity['fire_rate'] = 0
	_entity['fire_rate_max'] = 20
	_entity['weapon_id'] = weapons.create(_entity['_id'], rounds=3, recoil_time=15, speed=30, tracking=False)['_id']
	
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'diamond_turret.png',
	                     parent_entity=_entity)
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'diamond_drive.png',
	                     parent_entity=_entity,
	                     rotate_by=3)
	
	entities.register_event(_entity, 'moved', set_direction)
	entities.register_event(_entity, 'tick', tick_energy_ship)
	entities.register_event(_entity, 'tick', tick_flea)
	entities.register_event(_entity, 'tick', tick_turret)
	entities.register_event(_entity, 'shoot', lambda entity: entities.trigger_event(entities.get_entity(_entity['weapon_id']), 'shoot'))
	
	return _entity
Exemple #2
0
def load_map(name):
	_map = {}
	
	with open('%s.dat' % name, 'r') as _file:
		_x = 0
		_y = 0
		
		for line in _file.readlines():
			_x = 0
			
			for tile in [int(c) for c in line if not c == '\n']:
				_map['%s,%s' % (_x*100, _y*100)] = {'solid': False}
				
				if tile == 1:
					_map['%s,%s' % (_x*100, _y*100)]['solid'] = True
					_tile = entities.create_entity('tiles_foreground')
					_map['%s,%s' % (_x*100, _y*100)]['tile'] = _tile['_id']
					_sprite = effects.create_image(_x*100, _y*100, 'wall_full.png')
					_id = _sprite['_id']
					
					entities.register_event(_tile, 'delete', lambda _entity: entities.delete_entity_via_id(_id))
					
					_sprite['sprite'].image.anchor_x = 0
					_sprite['sprite'].image.anchor_y = 0
				
				_x += 1
			_y += 1
	
	return _map
Exemple #3
0
def create_planet():
	for entity_id in entities.get_sprite_groups(['items', 'planets']):
		entities.delete_entity(entities.ENTITIES[entity_id])
	
	if LEVEL == 1:
		_planet = entities.create_entity(group='planets')
		sprites.register_entity(_planet, 'effects_foreground', 'planet.png', scale=1.0)
		movement.register_entity(_planet, x=worlds.get_size()[0]/2, y=worlds.get_size()[1]/2, speed=0)
		effects.create_image(_planet['position'][0], _planet['position'][1], 'ring.png', background=2, scale=2, parent_entity=_planet)
		items.create_gravity_well(x=worlds.get_size()[0]/2, y=worlds.get_size()[1]/2, strength=0.25)
	
	elif LEVEL == 2:
		ships.create_ivan_large(x=worlds.get_size()[0]/2, y=worlds.get_size()[1]/2)
		items.create_gravity_well(x=worlds.get_size()[0]/2, y=worlds.get_size()[1]/2, min_distance=1000, kill_engines=False, strength=0.75)
	
	return True
Exemple #4
0
def create_eyemine(x=0, y=0, max_explode_velocity=40):
	_entity = create(x=x, y=y, group='hazards', sprite_name='eyemine_body.png', speed=35, acceleration=0.1, max_velocity=35)
	_entity['max_explode_velocity'] = max_explode_velocity
	
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'eyemine_subbody.png',
	                     parent_entity=_entity,
	                     rotate_by=3,
	                     background=True)
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'eyemine_eye1.png',
	                     parent_entity=_entity,
	                     background=False)
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'eyemine_eye2.png',
	                     parent_entity=_entity,
	                     rotate_with_parent=True,
	                     background=False)
	entities.register_event(_entity, 'tick', tick_eyemine)
	entities.register_event(_entity,
	                        'hit',
	                        lambda _entity, target_id, **kwargs: target_id in entities.ENTITIES and entities.trigger_event(_entity,
	                                                                                                                       'set_direction',
	                                                                                                                       direction=numbers.direction_to(_entity['position'],
	                                                                                                                                                      entities.get_entity(target_id)['position'])))
	entities.register_event(_entity, 'hit', lambda _entity, target_id, **kwargs: ai.track_target(_entity, target_id))
	entities.register_event(_entity, 'hit_edge', lambda entity: entities.trigger_event(entity, 'kill'))
	ai.guard(_entity)
	
	return _entity
Exemple #5
0
def create_ivan_large(x=0, y=0):
	_entity = create(sprite_name='boss3.png', group='hazards', scale=2.0, x=x, y=y, acceleration=.4, speed=0, max_velocity=0, turn_rate=0.8, death_time=40, hp=1000)
	_entity['current_target'] = None
	_entity['fire_rate'] = 0
	_entity['fire_rate_max'] = 20
	_entity['collision_radius'] = 1000
	_entity['cycle'] = 'shoot'
	_entity['shoot_cycle_max'] = 3
	_entity['shoot_cycle'] = 3
	_entity['spawn_cycle_max'] = 5
	_entity['spawn_cycle'] = 5
	_entity['warmup_cycles'] = 1
	
	_entity['weapon_id'] = weapons.create(_entity['_id'],
	                                      rounds=25,
	                                      recoil_time=1,
	                                      reload_time=30,
	                                      damage_radius=40,
	                                      speed=140,
	                                      missile=False,
	                                      bullet=True)['_id']
	timers.register_entity(_entity)
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'boss3_core.png',
	                     scale=2.0,
	                     parent_entity=_entity,
	                     background=False)
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'boss3_shield1.png',
	                     scale=2.0,
	                     rotate_by=-1,
	                     parent_entity=_entity,
	                     background=False)
	effects.create_image(_entity['position'][0],
	                     _entity['position'][1],
	                     'boss3_shield2.png',
	                     scale=2.0,
	                     rotate_by=0.5,
	                     parent_entity=_entity,
	                     background=False)
	entities.trigger_event(_entity,
	                       'create_timer',
	                       repeat=-1,
	                       time=100,
	                       repeat_callback=lambda entity: entities.trigger_event(_entity, 'shoot'))
	entities.register_event(_entity, 'moved', set_direction)
	entities.register_event(_entity, 'kill', boss_victory)
	entities.register_event(_entity, 'dying', boss_dying)
	entities.register_event(_entity, 'explode', boss_explode)
	entities.register_event(_entity, 'shoot', ivan_cycles)
	
	return _entity