Example #1
0
 def __init__(self, screen_width, screen_height, history_path=None, train_mode=False, prefix=None, tries=5):
     gc.disable()
     self.game_state = GameState.Start
     self.screen_width = screen_width
     self.screen_height = screen_height
     self.train_mode = train_mode
     self.battle_field_size = (1000, 1000)
     self.radiant_bots = 0
     self.dire_bots = 0
     self.is_player1_play = 1
     self.is_player2_play = 1
     self.radiant = self.radiant_bots + self.is_player1_play
     self.dire = self.dire_bots + self.is_player2_play
     if history_path is None:
         now_time = datetime.datetime.now()
         self.history_path = now_time.strftime("%Y_%m_%d_%H_%M_%S")+'.txt'
         #self.history_path = 'delete_me_pls.txt'
         if prefix:
             self.history_path = '{}_{}'.format(prefix, self.history_path)
         self.clear_file(self.history_path)
         self.is_it_move_from_history = False
     else:
         self.history_path = history_path
         self.is_it_move_from_history = True
     # self.fps_display = pyglet.clock.ClockDisplay()
     self.playtime = 0
     self.framerate = 60
     self.configuration = {ObjectType.FieldSize: [],
                           ObjectType.Bot1: [],
                           ObjectType.Player1: [],
                           ObjectType.Bot2: [],
                           ObjectType.Player2: []}
     self.configuration[ObjectType.FieldSize].append(self.battle_field_size)
     self.prepare_config(self.radiant_bots, self.dire_bots, self.is_player1_play, self.is_player2_play,
                         self.battle_field_size[0], self.battle_field_size[1])
     self.messenger = Messenger()
     if self.train_mode:
         self.ai_controls = AIcontrols(self.configuration, messenger=self.messenger, train_mode=True)
         self.Objects = Objects(self.configuration, self.radiant, self.dire, history_path=self.history_path,
                                messenger=self.messenger, ai_controls=self.ai_controls, tries=tries)
     else:
         self.ai_controls = AIcontrols(self.configuration, messenger=self.messenger)
         self.Objects = Objects(self.configuration, self.radiant, self.dire, history_path=self.history_path,
                                messenger=self.messenger)
     self.gui_controls = GUIcontrols(self.messenger)
     self.renderer = Renderer(self.screen_width, self.screen_height, self.battle_field_size)
     self.game_window = None
     self.objects = None
     self.history_list = []
     self.functions = {messages.Game.Quit: self.quit,
                       messages.Game.UpdateObjects: self.update_objects,
                       messages.Game.Pause: self.game_pause_simulation,
                       messages.Game.Polar_grid: self.show_polar_grid,
                       messages.Game.ActiveGame: self.game_unpaused}
     self.run_game()
Example #2
0
 def __init__(self):
     with open(self.glyph_pickle_file, 'rb') as glyph_file:
         glyphs = pickle.load(glyph_file)
     self.glyphs = glyphs
     self.monsters = Monsters(glyphs)
     self.objects = Objects(glyphs)
     self.rooms = RoomTiles(glyphs)
Example #3
0
    def initialization(self, window):
        """
        Initialise new objects when call
        """
        self.labyrinth = Labyrinth()
        self.mac_gyver = Player(
            MAC_GYVER_IMAGE, FLOOR_IMAGE, self.labyrinth, self.window
        )
        self.mac_gyver.position = [0, 0]
        self.objects = Objects(
            SYRINGE_IMAGE, ETHER_IMAGE, NEEDLE_IMAGE, self.labyrinth, self.window
        )

        # Labyrinth
        self.labyrinth.labyrinth_construction()
        self.labyrinth.display_level(window)

        # Player
        self.mac_gyver.blit(self.mac_gyver.position)

        # Objects
        self.objects.generate_random_position()
        self.objects.display_objects()
        self.objects.objects_collected = 0

        self.run = True
        self.response = None
Example #4
0
def create_object(group, h_number, v_number, screen):
    obj = Objects(screen)
    space_x = obj.rect.width * h_number
    space_y = obj.rect.height * v_number
    obj.rect.x = space_x
    obj.rect.y = 30 + space_y
    group.append(obj)
Example #5
0
    def super_categories(self):
        """
        EXAMPLES::

            sage: SimplicialComplexes().super_categories()
            [Category of objects]
        """
        return [Objects()]  # anything better?
Example #6
0
    def super_categories(self):
        """
        EXAMPLES::

            sage: ChainComplexes(Integers(9)).super_categories()
            [Category of objects]
        """
        return [Objects()]  # anything better?
Example #7
0
    def super_categories(self):
        """
        EXAMPLES::

            sage: SetsWithPartialMaps().super_categories()
            [Category of objects]
        """
        return [Objects()]
Example #8
0
    def super_categories(self):
        """
        EXAMPLES::

            sage: Sequences(ZZ).super_categories()
            [Category of objects]
        """
        from objects import Objects
        return [Objects()]  # Almost FiniteEnumeratedSets() except for possible repetitions
Example #9
0
def backup():

    ''' Emby backup.
    '''
    from helper.utils import delete_folder, copytree

    path = settings('backupPath')
    folder_name = "Kodi%s.%s" % (xbmc.getInfoLabel('System.BuildVersion')[:2], xbmc.getInfoLabel('System.Date(dd-mm-yy)'))
    folder_name = dialog("input", heading=_(33089), defaultt=folder_name)

    if not folder_name:
        return

    backup = os.path.join(path, folder_name)

    if xbmcvfs.exists(backup + '/'):
        if not dialog("yesno", heading="{emby}", line1=_(33090)):

            return backup()

        delete_folder(backup)

    addon_data = xbmc.translatePath("special://profile/addon_data/plugin.video.emby").decode('utf-8')
    destination_data = os.path.join(backup, "addon_data", "plugin.video.emby")
    destination_databases = os.path.join(backup, "Database")

    if not xbmcvfs.mkdirs(path) or not xbmcvfs.mkdirs(destination_databases):

        LOG.info("Unable to create all directories")
        dialog("notification", heading="{emby}", icon="{emby}", message=_(33165), sound=False)

        return

    copytree(addon_data, destination_data)

    databases = Objects().objects

    db = xbmc.translatePath(databases['emby']).decode('utf-8')
    xbmcvfs.copy(db, os.path.join(destination_databases, db.rsplit('\\', 1)[1]))
    LOG.info("copied emby.db")

    db = xbmc.translatePath(databases['video']).decode('utf-8')
    filename = db.rsplit('\\', 1)[1]
    xbmcvfs.copy(db, os.path.join(destination_databases, filename))
    LOG.info("copied %s", filename)

    if settings('enableMusic.bool'):

        db = xbmc.translatePath(databases['music']).decode('utf-8')
        filename = db.rsplit('\\', 1)[1]
        xbmcvfs.copy(db, os.path.join(destination_databases, filename))
        LOG.info("copied %s", filename)

    LOG.info("backup completed")
    dialog("ok", heading="{emby}", line1="%s %s" % (_(33091), backup))
Example #10
0
    def super_categories(self):
        """
        EXAMPLES::

            sage: Elements(ZZ).super_categories()
            [Category of objects]

        TODO:

        check that this is what we want.
        """
        return [Objects()]
Example #11
0
def get_fanart(item_id, path, server_id=None):

    ''' Get extra fanart for listitems. This is called by skinhelper.
        Images are stored locally, due to the Kodi caching system.
    '''
    if not item_id and 'plugin.video.emby' in path:
        item_id = path.split('/')[-2]

    if not item_id:
        return

    LOG.info("[ extra fanart ] %s", item_id)
    objects = Objects()
    list_li = []
    directory = xbmc.translatePath("special://thumbnails/emby/%s/" % item_id).decode('utf-8')
    server = TheVoid('GetServerAddress', {'ServerId': server_id}).get()

    if not xbmcvfs.exists(directory):

        xbmcvfs.mkdirs(directory)
        item = TheVoid('GetItem', {'ServerId': server_id, 'Id': item_id}).get()
        obj = objects.map(item, 'Artwork')
        backdrops = api.API(item, server).get_all_artwork(obj)
        tags = obj['BackdropTags']

        for index, backdrop in enumerate(backdrops):

            tag = tags[index]
            fanart = os.path.join(directory, "fanart%s.jpg" % tag)
            li = xbmcgui.ListItem(tag, path=fanart)
            xbmcvfs.copy(backdrop, fanart)
            list_li.append((fanart, li, False))
    else:
        LOG.debug("cached backdrop found")
        dirs, files = xbmcvfs.listdir(directory)

        for file in files:
            fanart = os.path.join(directory, file.decode('utf-8'))
            li = xbmcgui.ListItem(file, path=fanart)
            list_li.append((fanart, li, False))

    xbmcplugin.addDirectoryItems(int(sys.argv[1]), list_li, len(list_li))
    xbmcplugin.endOfDirectory(int(sys.argv[1]))
Example #12
0
def get_fanart(item_id, path, server_id=None, api_client=None):
    ''' Get extra fanart for listitems. This is called by skinhelper.
        Images are stored locally, due to the Kodi caching system.
    '''
    if not item_id and 'plugin.video.jellyfin' in path:
        item_id = path.split('/')[-2]

    if not item_id:
        return

    LOG.info("[ extra fanart ] %s", item_id)
    objects = Objects()
    list_li = []
    directory = xbmc.translatePath("special://thumbnails/jellyfin/%s/" %
                                   item_id)

    if not xbmcvfs.exists(directory):

        xbmcvfs.mkdirs(directory)
        item = api_client.get_item(item_id)
        obj = objects.map(item, 'Artwork')
        backdrops = api.API(item).get_all_artwork(obj)
        tags = obj['BackdropTags']

        for index, backdrop in enumerate(backdrops):

            tag = tags[index]
            fanart = os.path.join(directory, "fanart%s.jpg" % tag)
            li = xbmcgui.ListItem(tag, path=fanart)
            xbmcvfs.copy(backdrop, fanart)
            list_li.append((fanart, li, False))
    else:
        LOG.debug("cached backdrop found")
        dirs, files = xbmcvfs.listdir(directory)

        for file in files:
            fanart = os.path.join(directory, file)
            li = xbmcgui.ListItem(file, path=fanart)
            list_li.append((fanart, li, False))

    xbmcplugin.addDirectoryItems(PROCESS_HANDLE, list_li, len(list_li))
    xbmcplugin.endOfDirectory(PROCESS_HANDLE)
    def __init__ (self, mainMenuSound, soundMouse, soundSpace, soundGun, soundClick, takeSomething, soundCoin, soundSpaceShip):
        self.spaceShip = SpaceShip(width/2, height/2+150, 150, 150, 5, soundGun, takeSomething, soundCoin)
        self.enemy = Enemy(random(0+75/2, width-75/2), -300, 75, 75, 3)
        self.spaceShip.setEnemy(self.enemy)
        self.objects = Objects(soundGun)
        self.spaceShip.setSecondWeapon(self.objects.secondWeapon)
        self.spaceShip.setSecondWeaponTimer(self.objects.secondWeaponTimer)
        self.dropedObjects = DropedObjects(random(0+25, width-25), -2400, 50, 50, 2, random(0+25, width-25))
        self.spaceShip.setDropedSecondWeapon(self.dropedObjects.dropedSecondWeapon)
        self.stars = Stars()
        self.gameState = False
        self.buttonToStartGame = StartGame(width/2, height/2, 100, 50)

        self.mainMenuSound = mainMenuSound
        self.mainMenuSound.loop()

        self.soundMouse = soundMouse

        self.soundSpace = soundSpace

        self.soundClick = soundClick

        self.soundSpaceShip = soundSpaceShip
Example #14
0
def main():

    screen = pygame.display.set_mode((15 * sp_size, 15 * sp_size))
    Lab = Labyrinth("mappy.txt", sp_size)
    Lab.convert_file_txt()
    Lab.get_pos()
    objects = Objects(Lab)
    objects.random()
    macgyver = MacGyver("mappy.txt", sp_size, objects, Lab)
    guardian = Guardian(sp_size)
    pygame.display.flip()
    current_game = True

    while current_game:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_RIGHT:
                    macgyver.move_right()
                elif event.key == pygame.K_LEFT:
                    macgyver.move_left()
                elif event.key == pygame.K_UP:
                    macgyver.move_up()
                elif event.key == pygame.K_DOWN:
                    macgyver.move_down()
                macgyver.get_objects()

                Lab.get_pos()
                arbitror(macgyver, guardian)

        objects.display_objects()
        screen.blit(guardian.image, (guardian.rect.x, guardian.rect.y))
        screen.blit(macgyver.image, (macgyver.rect.x, macgyver.rect.y))
        macgyver.score_count()
        pygame.display.flip()
Example #15
0
#game screen generation
pygame.display.set_caption('Surrender')
size = width, height = 1280, 720
screen = pygame.display.set_mode((size))
icon = pygame.image.load('assets/icon.png')
pygame.display.set_icon(icon)

#mouse
pygame.mouse.set_cursor(*pygame.cursors.diamond)

#Player creation
player = Player()

#Map creation
maps = Map()
objects_light = Objects(0)
objects_dark = Objects(1)

hud = HudText()
hud.render_text("Press [SPACE].", "", "")

#Sound
ost = pygame.mixer.Sound('assets/ost.ogg')
ost.set_volume(0.2)
ost.play(loops=-1, maxtime=0, fade_ms=0)

running = True


def collide(character, obj):
    if obj.contains(character) == 1:
Example #16
0
 def on_init(self):
     self.game_objects = Objects(self.width, self.height)
Example #17
0
    def _sql(self, file):
        ''' Get the database path based on the file objects/obj_map.json
            Compatible check, in the event multiple db version are supported with the same Kodi version.
            Load video, music, texture databases from the log file. Will only run once per service thread.
            Running database version lines
        '''
        from objects import Objects

        databases = Objects().objects

        if file not in ('video', 'music', 'texture') or databases.get(
                'database_set%s' % file):
            return self._get_database(databases[file], True)

        folder = xbmc.translatePath("special://database/").decode('utf-8')
        dirs, files = xbmcvfs.listdir(folder)
        dbs = {'Textures': "texture", 'MyMusic': "music", 'MyVideos': "video"}
        for db in dbs:

            count = 0
            filename = None

            for name in files:

                if (name.startswith(db) and not name.endswith('-wal')
                        and not name.endswith('-shm')
                        and not name.endswith('db-journal')):

                    count += 1
                    filename = name

            if count == 1:

                key = dbs[db]
                databases[key] = os.path.join(
                    folder, filename.decode('utf-8')).decode('utf-8')
                databases['database_set%s' % key] = True

                continue

            break
        else:
            return databases[file]

        with open(
                xbmc.translatePath('special://logpath/kodi.log').decode(
                    'utf-8'), 'r') as log:
            found_lines = len(dbs)

            for line in log:
                if 'Running database version' in line:

                    filename = line.rsplit('version ', 1)[1].strip()
                    filename = "%s.db" % filename

                    for database in dbs:
                        if database in line:

                            key = dbs[database]
                            databases[key] = os.path.join(
                                folder,
                                filename.decode('utf-8')).decode('utf-8')
                            databases['database_set%s' % key] = True
                            found_lines -= 1

                            break

                elif not found_lines:
                    break

        return databases[file]
Example #18
0
def run_game():
    pygame.init()
    set = Settings()
    screen = pygame.display.set_mode((set.width, set.height))

    images = ["rsc/objekt01.png", "rsc/objekt02.png", "rsc/objekt03.png", "rsc/objekt04.png", "rsc/objekt05.png"]
    objects = []
    for i in range(0, 5):
        object = Objects(set, screen, images[i])
        objects.append(object)

    hintergrund = pygame.image.load("rsc/hintergrund.png")
    rect_hintergrund = hintergrund.get_rect()
    rect_hintergrund.x = 0
    rect_hintergrund.y = 0

    teppich = pygame.image.load("rsc/teppich.png")
    rect_teppich = teppich.get_rect()
    rect_teppich.x = 100
    rect_teppich.y = 60

    rucksack = pygame.image.load("rsc/rucksack.png")
    rect_rucksack = rucksack.get_rect()
    rect_rucksack.x = rect_teppich.width + 200
    rect_rucksack.y = 60

    button01 = pygame.image.load("rsc/button01.png")
    rect_button01 = button01.get_rect()
    rect_button01.x = set.width - rect_button01.width - 100
    rect_button01.y = set.height - rect_button01.height - 60

    button02 = pygame.image.load("rsc/button02.png")
    rect_button02 = button02.get_rect()
    rect_button02.x = set.width - rect_button02.width - 100
    rect_button02.y = set.height - rect_button02.height - 60

    def update_screen(screen):
        if not set.game_over:
            screen.blit(hintergrund, rect_hintergrund)
            screen.blit(button01, rect_button01)
            screen.blit(teppich, rect_teppich)
            screen.blit(rucksack, rect_rucksack)
            for object in objects:
                object.blit()
        else:
            screen.blit(hintergrund, rect_hintergrund)
            screen.blit(button02, rect_button02)

    def check_mouse_down(mouse):
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONDOWN:
                set.mouse_down = True
                for object in objects:
                    if object.rect_image.collidepoint(mouse):
                        return objects.index(object)

    def check_mouse_up():
        for event in pygame.event.get():
            if event.type == pygame.MOUSEBUTTONUP:
                set.mouse_down = False

    def check_collide_object(mouse, current_object):
        for object in objects:
            if object.rect_image.collidepoint(mouse):
                if set.mouse_down:
                    current = objects[current_object]
                    current.rect_image.x = round(mouse[0] - object.rect_image.width / 2)
                    current.rect_image.y = round(mouse[1] - object.rect_image.height / 2)
        if rect_button02.collidepoint(mouse) and set.game_over == True:
            sys.exit()

    def check_object_in_backpack():
        if set.mouse_down == False:
            for object in objects:
                if object.rect_image.colliderect(rect_rucksack):
                    set.items += 1
                    object.rect_image.x = -100
                    object.rect_image.y = -100

    def check_game_over():
        if set.items >= 5:
            set.game_over = True

    while True:
        if set.mouse_down == False:
            current_object = check_mouse_down(pygame.mouse.get_pos())
        else:
            check_collide_object(pygame.mouse.get_pos(), current_object)
        check_mouse_up()
        check_object_in_backpack()
        check_game_over()
        update_screen(screen)
        pygame.display.flip()
Example #19
0
def main():
    """ Main function """

    game_activated = True

    while game_activated:
        """ Main loop containing 'Welcome loop', ' Instruction loop' and 'Game loop'.
        Initialization of all the game elements """

        pygame.time.Clock().tick(30)

        # SCREEN LOADING
        level = Level()
        pygame.init()
        screen = pygame.display.set_mode(
            (SPRITES * SPRITE_SIZE, SPRITES * SPRITE_SIZE + 50))
        icon = pygame.image.load(IMAGE_MCGYVER).convert()
        pygame.display.set_icon(icon)
        pygame.display.set_caption(TITLE_WELCOME)

        # MUSIC LOADING
        sound_mac_theme = pygame.mixer.Sound(MAC_THEME)
        music_win = pygame.mixer.Sound(MAC_WIN)

        # MAP IS CREATED
        background = pygame.image.load(IMAGE_BACKGROUND).convert()
        level.map_generator()

        # CHARACTERS ARE CREATED
        mcgyver = Character(0, 1, IMAGE_MCGYVER, level)
        guardian = Character(14, 13, IMAGE_GUARDIAN, level)

        # OBJECTS ARE CREATED
        needle = Objects('N', IMAGE_NEEDLE, level)
        ether = Objects('E', IMAGE_ETHER, level)
        tube = Objects('T', IMAGE_TUBE, level)

        # WELCOME PAGE LOADING AND SHOWING
        welcome = pygame.image.load(WELCOME_MAC).convert()

        # INSTRUCTION PAGE LOADING
        instructions = pygame.image.load(IMAGE_INSTRUCTIONS).convert()

        # INVENTORY AT THE BOTTOM OF THE SCREEN LOADING
        inventory = pygame.image.load(IMAGE_INVENTORY).convert()

        pygame.display.flip()

        continue_game = True
        continue_title = True
        continue_instructions = True

        # WELCOME LOOP
        while continue_title:
            sound_mac_theme.play()
            screen.blit(welcome, (0, 0))

            if level.player_decision():
                continue_title = False

            pygame.display.flip()

        # INSTRUCTIONS LOOP
        while continue_instructions:
            sound_mac_theme.stop()
            screen.blit(instructions, (0, 0))
            screen.blit(inventory, (0, 600))

            if level.player_decision():
                continue_instructions = False

            pygame.display.flip()

        # GAME LOOP
        while continue_game:

            # Displaying map and refreshing screen
            screen.blit(background, (0, 0))
            level.map_draw(screen)
            screen.blit(
                mcgyver.visual,
                (mcgyver.pos_x * SPRITE_SIZE, mcgyver.pos_y * SPRITE_SIZE))
            screen.blit(
                guardian.visual,
                (guardian.pos_x * SPRITE_SIZE, guardian.pos_y * SPRITE_SIZE))

            # Displaying objects images for each objects position
            ether.displaying_objects(level, screen)
            tube.displaying_objects(level, screen)
            needle.displaying_objects(level, screen)

            # Games actions
            mcgyver.is_moving()
            if mcgyver.is_moving() is False:
                continue_game = False

            # Inventory displaying
            ether.display_in_inventory(mcgyver, screen)
            tube.display_in_inventory(mcgyver, screen)
            needle.display_in_inventory(mcgyver, screen)

            # MacGyver wins or loses
            mcgyver.wins_or_not(screen, music_win, level)
            if mcgyver.wins_or_not(screen, music_win, level) is False:
                continue_game = False

            pygame.display.flip()
Example #20
0
def dispose_objects(screen, group, score):
    obj = Objects(screen)
    elements_in_x = space_available_x(screen, obj)
    for v_number in range(score.level):
        for h_number in range(elements_in_x + 1):
            create_object(group, h_number, v_number, screen)
Example #21
0
    def __init__(self, host):
        self.host = host

        self.objects = Objects(host)
Example #22
0
    ('Spell Sounds Starter Pack - p0ss',
     'https://creativecommons.org/licenses/by-sa/3.0/legalcode',
     'http://www.gnu.org/licenses/gpl-3.0.html',
     'http://www.gnu.org/licenses/old-licenses/gpl-2.0.html',
     'https://opengameart.org/content/spell-sounds-starter-pack',
     'Foram feitas modificações neste trabalho para o uso neste projeto', '',
     'Another Egyptian Theme - Spring',
     'https://creativecommons.org/licenses/by/4.0/legalcode',
     'https://creativecommons.org/licenses/by/3.0/legalcode',
     'https://creativecommons.org/licenses/by-sa/4.0/legalcode',
     'https://creativecommons.org/licenses/by-sa/3.0/legalcode',
     'https://static.opengameart.org/OGA-BY-3.0.txt',
     'https://opengameart.org/content/another-egyptian-theme')
]

pilar = Objects(4000, 1450, pilar_img.get_width(), pilar_img.get_height(),
                pilar_img)
gate = Objects(3263, 1300, gate_img.get_width(), gate_img.get_height(),
               gate_img)
gate_down = Objects(3648, 2500, gate_down_img.get_width(),
                    gate_down_img.get_height(), gate_down_img)
gate_side = Objects(2750, 1728, gate_side_img.get_width(),
                    gate_side_img.get_height(), gate_side_img)

armasAfricanas = Objects(4200, 1720, armasAfricanas_img.get_width(),
                         armasAfricanas_img.get_height(), armasAfricanas_img)
mascaraAfricana = Objects(4250, 2100, mascaraAfricana_img.get_width(),
                          mascaraAfricana_img.get_height(),
                          mascaraAfricana_img)
elmoRomano = Objects(3800, 1770, elmoRomano_img.get_width(),
                     elmoRomano_img.get_height(), elmoRomano_img)
estatuaAfricana = Objects(3800, 2100, estatuaAfricana_img.get_width(),