# -*- coding: utf-8 -*-
# This file has been generated, if you wish to
# modify it in a permanent way, please refer
# to the script file : gen/generator_python.rb

from api import *

def mamagie(): return magie(moi())
def mabase(): return base_joueur(moi())

def add_pos(p1,p2): return (p2[0]+p1[0],p2[1]+p1[1])
def diff_pos(p1,p2): return (p2[0]-p1[0],p2[1]-p1[1])
def div_pos(p,d): return (p[0]//d,p[1]//d)
def mul_pos(p,m): return (p[0]*m,p[1]*m)

class Jeu:
	def __init__(self):
		self.pos = mabase()
		self.tourelle = mabase()
		self.total_sorciers = 0
		self.artefact = (TAILLE_TERRAIN//2,TAILLE_TERRAIN//2)
		self.direction_centre = div_pos(diff_pos(mabase(),self.artefact), TAILLE_TERRAIN//2)

	def construction(self):
		if tour_actuel() >= MAX_TOUR//2:
			pos_tourelle = add_pos(self.tourelle, self.direction_centre)
			ret = construire(pos_tourelle, PORTEE_TOURELLE)
			if ret is erreur.OK:
				self.tourelle = pos_tourelle

		else:
			nbsorciers = mamagie()/COUT_SORCIER
			self.total_sorciers += nbsorciers
			creer(nbsorciers)

	def deplacement(self):
		if tour_actuel() < MAX_TOUR//2 : return
		depl = chemin(self.pos, self.artefact)
		if len(depl) >= 2:
			deplacer(self.pos, depl[1], self.total_sorciers)
			self.pos = depl[1]


# Fonction appelée au début de la partie
def partie_debut():
	global j
	j = Jeu()

# Fonction appelée pendant la phase de construction
def phase_construction():
	global j
	j.construction()

# Fonction appelée pendant la phase de déplacement
def phase_deplacement():
	global j
	j.deplacement()

# Fonction appelée pendant la phase de tirs des tourelles
def phase_tirs():
    pass # Place ton code ici

# Fonction appelée pendant la phase de siège des tourelles
def phase_siege():
	pass

# Fonction appelée à la fin de la partie
def partie_fin():
    pass # Place ton code ici

