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
def create_energy_ship(x=0, y=0): _entity = create(x=x, y=y, group='players', sprite_name='ball.png', speed=19, acceleration=.3, max_velocity=30, turn_rate=0.5, death_time=35, hp=60) _entity['weapon_id'] = weapons.create(_entity['_id'], rounds=35, recoil_time=0, reload_time=48, kickback=3, damage_radius=65, spray=3, speed=200, missile=False, bullet=True)['_id'] _entity['alt_weapon_id'] = weapons.create(_entity['_id'], rounds=6, recoil_time=5, reload_time=28, speed=60, tracking=True)['_id'] timers.register_entity(_entity) entities.register_event(_entity, 'tick', tick_energy_ship) entities.register_event(_entity, 'shoot', lambda entity, direction=0: entities.trigger_event(entities.get_entity(_entity['weapon_id']), 'shoot', direction=direction)) entities.register_event(_entity, 'shoot_alt', lambda entity: entities.trigger_event(entities.get_entity(_entity['alt_weapon_id']), 'shoot')) return _entity