# -*- coding:utf-8 -*-

GRID_SIZE = (20, 14)
DELAY = 300 # maj toutes les 0.3 secondes

# fichier d'enregistrement des scores
SCORES_FILE_NAME = ".scores02"

# obstacles
walls_coord_list = [(0,y) for y in range(0,GRID_SIZE[1])] + \
                   [(GRID_SIZE[0]-1,y) for y in range(0,GRID_SIZE[1])] + \
                   [(x,0) for x in range(1,GRID_SIZE[0]-1)] + \
                   [(x,GRID_SIZE[1]-1) for x in range(1,GRID_SIZE[0]-1)]

# nourriture

CHERRY1_DELAY = 5
CHERRY1_WAITING = [0,0,0]
def cherry1_effect(player):
    player.alter_energy(2)
    player.alter_points(-1)
    player.snake.alter_length(1)
    return player

CHERRY2_DELAY = 5
CHERRY2_WAITING = [0,0]
def cherry2_effect(player):
    player.alter_energy(3)
    player.alter_points(-1)
    player.snake.alter_length(1)
    return player

CHERRY3_DELAY = 5
CHERRY3_WAITING = [0]
def cherry3_effect(player):
    player.alter_energy(4)
    player.alter_points(-1)
    player.snake.alter_length(1)
    return player

CHERRYMINUS_DELAY = 5
CHERRYMINUS_WAITING = [0 for i in range(15)]
def cherryminus_effect(player):
    player.alter_energy(-5)
    player.alter_points(3)
    player.snake.alter_length(1)
    return player

HEART_DELAY = 10
HEART_WAITING = [0 for i in range(3)]
def heart_effect(player):
    player.alter_energy(11)
    player.snake.alter_length(1)
    return player

EGG_DELAY = 250
EGG_WAITING = [100]
def egg_effect(player):
    player.alter_life(1)
    player.snake.alter_length(-3)
    return player

# snake_config init:
SNAKE_COORD_LIST = [(0,8),(-1,8),(-2,8)]
SNAKE_IMAGE_LIST = ["E","EW","E"]
SNAKE_LENGTH = 3
SNAKE_OLD_DIREC = "E"
SNAKE_DIREC = "E"
# snake config
SNAKE_LENGTH_MAX = 80
SNAKE_LENGTH_MIN = 3

# player_config init:
PLAYER_LIFE = 1
PLAYER_ENERGY = 20
# player config
PLAYER_ENERGY_MAX = 60
PLAYER_LIFE_MAX = 4
PLAYER_DUREE_EXPLOSION = 5

# listes simplifiant le passage des parametres a player et snake
SNAKE_CONFIG_INIT = [SNAKE_COORD_LIST, SNAKE_IMAGE_LIST, SNAKE_LENGTH, SNAKE_OLD_DIREC, SNAKE_DIREC]
SNAKE_PARA = [SNAKE_LENGTH_MIN, SNAKE_LENGTH_MAX]
PLAYER_CONFIG_INIT = [PLAYER_ENERGY, PLAYER_LIFE]
PLAYER_PARA = [PLAYER_ENERGY_MAX, PLAYER_LIFE_MAX, PLAYER_DUREE_EXPLOSION]

objectifs = [unicode("Avoir le maximum d'énergie et des points positifs. ", "utf-8"), \
             unicode("Le score prend en compte le nombre de vies.", "utf-8")]
def player_pass_level(player):
    return player.energy >= PLAYER_ENERGY_MAX and player.points >= 0

def player_note(player):
    return player.points + 10*player.life
