import os

import pygame

from common_func import get_base_path


class JXC(pygame.sprite.Sprite):
    def __init__(self, rect):
        super(JXC, self).__init__()
        self.image = pygame.image.load(os.path.join(get_base_path(), 'images/jxc/JXC_00.png')).convert_alpha()
        self.images1 = [
            pygame.image.load(os.path.join(get_base_path(), 'images/jxc/JXC_{:02d}.png'.format(i))).convert_alpha() for i
            in range(0, 31)]
        self.images2 = [
            pygame.image.load(os.path.join(get_base_path(), 'images/jxc/JXC_{:02d}.png'.format(i))).convert_alpha() for i
            in range(31, 69)]
        self.rect = self.images1[0].get_rect()
        self.rect.left = rect[0]
        self.rect.top = rect[1]
        self.energy = 60
        self.zombies = set()
        self.attack = False
        self.att = 0

    def update(self, *args):
        if not self.attack:
            self.image = self.images1[args[0] % len(self.images1)]
        elif self.attack:
            if self.att < 38:
                self.image = self.images2[self.att]
                self.att += 1
            else:
                self.att = 0
                self.attack = False
        for zombie in self.zombies:
            if not zombie.Alive:
                self.energy += 0
            else:
                self.energy -= 1
        if self.energy <= 0:
            for zombie in self.zombies:
                zombie.GO = False
            self.kill()
