;=========================
	; summon
	;=========================
summon:
	lda	MENU_POSITION
	beq	do_summon_metrocat
	bne	do_summon_vortex_cannon

do_summon_metrocat:
	jmp	summon_metrocat
do_summon_vortex_cannon:
	jmp	summon_vortex_cannon

	rts





	;========================
	; summon metrocat
	;========================
summon_metrocat:

	lda	#$17
	sta	DAMAGE_VAL_LO
	lda	#$00
	sta	DAMAGE_VAL_HI

	lda	#28
	sta	MAGIC_X
	lda	#2
	sta	MAGIC_Y

	;===========================
	; draw looming metrocat head

	lda	#30
	sta	ANIMATE_LOOP
looming_metrocat_loop:

	jsr	gr_copy_to_current

	; draw hero
	lda	#34
	sta	HERO_X
	jsr	draw_hero_and_sword

	; draw enemy
	lda	ENEMY_X
	sta	XPOS
	lda	#20
	sta	YPOS
	jsr	draw_enemy

	; draw metrocat's head

	lda	MAGIC_X
	sta	XPOS
	lda	MAGIC_Y
	sta	YPOS

	lda	#<metrocat_sprite
	sta	INL
	lda	#>metrocat_sprite
	sta	INH

	jsr	put_sprite_crop

	; draw battle bottom

	jsr	draw_battle_bottom

	jsr	page_flip

	lda	#75
	jsr	WAIT			; delay a bit

	dec	ANIMATE_LOOP
	bne	looming_metrocat_loop

move_metrocat_loop:

	jsr	gr_copy_to_current

	jsr	draw_hero_and_sword

	; draw enemy
	lda	ENEMY_X
	sta	XPOS
	lda	#20
	sta	YPOS
	jsr	draw_enemy

	; draw metrocat's head

	lda	MAGIC_X
	sta	XPOS
	lda	MAGIC_Y
	sta	YPOS

	lda	#<metrocat_sprite
	sta	INL
	lda	#>metrocat_sprite
	sta	INH

	jsr	put_sprite_crop

	; draw battle bottom

	jsr	draw_battle_bottom

	jsr	page_flip

	lda	#50	; delay
	jsr	WAIT

	dec	MAGIC_X
	lda	MAGIC_X

	cmp	#15
	bcs	metrocat_no_move_y

	; have to keep even

	and	#1
	bne	metrocat_no_move_y

	inc	MAGIC_Y
	inc	MAGIC_Y

metrocat_no_move_y:
	lda	MAGIC_X
	cmp	#5			; move until X=5
	bcs	move_metrocat_loop


	lda	#30
	sta	ANIMATE_LOOP

metrocat_damage_loop:
	jsr	gr_copy_to_current

	jsr	draw_hero_and_sword

	; draw enemy
	lda	ENEMY_X
	sta	XPOS
	lda	#20
	sta	YPOS
	jsr	draw_enemy

	; draw metrocat's head

	lda	MAGIC_X
	sta	XPOS
	lda	MAGIC_Y
	sta	YPOS

	lda	#<metrocat_sprite
	sta	INL
	lda	#>metrocat_sprite
	sta	INH

	jsr	put_sprite_crop

	jsr	draw_battle_bottom

	jsr	page_flip

	lda	#50
	jsr	WAIT

	dec	ANIMATE_LOOP
	bne	metrocat_damage_loop


	; ending scene


	lda	#$07
	sta	MAGIC_COST
	jsr	hero_use_magic

	jsr	gr_copy_to_current

	; draw enemy

	lda	ENEMY_X
	sta	XPOS
	lda	#20
	sta	YPOS
	jsr	draw_enemy

	; draw hero

	jsr	draw_hero_and_sword

	; draw bottom

	jsr	draw_battle_bottom

	jsr	damage_enemy

	lda	#2
	sta	XPOS
	lda	#10
	sta	YPOS

	jsr	gr_put_num

	jsr	page_flip

	; long wait (1.5s)
	ldx	#150
	jsr	long_wait

	rts



	;=========================
	; Vortex Cannon
	;=========================

summon_vortex_cannon:

	lda	#5
	sta	DAMAGE_VAL_LO
	lda	#0
	sta	DAMAGE_VAL_HI

	lda	#20
	sta	MAGIC_X
	sta	MAGIC_Y


	; draw the cannon

	lda	#30
	sta	ANIMATE_LOOP

vortex_setup_loop:
	jsr	gr_copy_to_current


	; draw hero
	lda	#34
	sta	HERO_X
	jsr	draw_hero_and_sword

	; draw enemy
	lda	ENEMY_X
	sta	XPOS
	lda	#20
	sta	YPOS
	jsr	draw_enemy

	; grsim_put_sprite(vortex_cannon,ax,ay);

	; draw vortex_cannon

	lda	#20
	sta	XPOS
	lda	#20
	sta	YPOS

	lda	#<vortex_cannon_sprite
	sta	INL
	lda	#>vortex_cannon_sprite
	sta	INH

	jsr	put_sprite_crop

	; draw bottom

	jsr	draw_battle_bottom

	jsr	page_flip

	lda	#50
	jsr	WAIT

	dec	ANIMATE_LOOP
	bne	vortex_setup_loop


	; Fire vortices


	lda	#5
	sta	ANIMATE_LOOP

vortex_cannon_fire_loop:

	lda	#20
	sta	MAGIC_X

vortex_cannon_move_loop:

	jsr	gr_copy_to_current

	; draw hero
	jsr	draw_hero_and_sword

	; draw enemy
	lda	ENEMY_X
	sta	XPOS
	lda	#20
	sta	YPOS
	jsr	draw_enemy

	; draw vortex_cannon

	lda	#20
	sta	XPOS
	lda	#20
	sta	YPOS

	lda	#<vortex_cannon_sprite
	sta	INL
	lda	#>vortex_cannon_sprite
	sta	INH

	jsr	put_sprite_crop

	; draw vortex

	lda	MAGIC_X
	sta	XPOS
	lda	#24
	sta	YPOS

	lda	#<vortex_sprite
	sta	INL
	lda	#>vortex_sprite
	sta	INH

	jsr	put_sprite_crop

	jsr	draw_battle_bottom


	; print damage if < 10
	lda	MAGIC_X
	cmp	#10
	bcs	vortex_no_print_damage

	lda	#2
	sta	XPOS
	lda	#10
	sta	YPOS

	jsr	gr_put_num

vortex_no_print_damage:

	jsr	page_flip

	lda	#100
	jsr	WAIT

	dec	MAGIC_X

	lda	MAGIC_X
	cmp	#5
	bcs	vortex_cannon_move_loop

	; damage enemy
	jsr	damage_enemy

	dec	ANIMATE_LOOP
	bne	vortex_cannon_fire_loop


	; end of summon

	lda	#$10
	sta	MAGIC_COST
	jsr	hero_use_magic

	jsr	gr_copy_to_current

	; draw enemy
	lda	ENEMY_X
	sta	XPOS
	lda	#20
	sta	YPOS
	jsr	draw_enemy

	; draw hero
	jsr	draw_hero_and_sword

	jsr	draw_battle_bottom

	jsr	page_flip

	; wait 1.5s
	ldx	#150
	jsr	long_wait

	rts