Beispiel #1
0
    def test_01_load_save_simple(self):
        """ test loading and saving a level"""
        selector = selector_fake.SelectorFake()
        loaded_level = level.Level(selector)
        loaded_level.load("../test/test_samples/level/simple/", state.LevelState.Instantiated)
        self.assertIsNotNone(loaded_level)

        self.assertIsNotNone(loaded_level.values.gates)
        self.assertEqual(len(loaded_level.values.gates), 4)

        self.assertIsNotNone(loaded_level.values.rooms)
        self.assertEqual(len(loaded_level.values.rooms), 3)

        output = "/tmp/test_01_load_save_simple"
        self.remake_dest(output)
        _dump = loaded_level.save(output)
        reloaded_level = level.Level(selector)
        reloaded_level.load(output, state.LevelState.Instantiated)
        self.assertIsNotNone(reloaded_level)

        self.assertIsNotNone(reloaded_level.values.gates)
        self.assertEqual(len(reloaded_level.values.gates), 4)

        self.assertIsNotNone(reloaded_level.values.rooms)
        self.assertEqual(len(reloaded_level.values.rooms), 3)
async def xp(ctx, member: discord.Member = None):
    allowance = not_allowed(ctx, xp.name, bot)
    if allowance[0]:
        await bot.say(f'acess denied,channel for ={xp.name} is {allowance[1]}')
        return

    if member == None:
        lev = level.Level(ctx=ctx)
    else:
        lev = level.Level(member=member)

    try:
        lev.get_level()
    except:
        await bot.say('need to bet once at least!!')
        return

    if member == None:
        embed = discord.Embed(
            title=f'{ctx.message.author} has level {lev.level}',
            description=f'XP = {lev.xp}',
            colour=discord.Colour.dark_orange())
    else:
        embed = discord.Embed(title=f'{member} has level {lev.level}',
                              description=f'XP = {lev.xp}',
                              colour=discord.Colour.dark_orange())
    embed.add_field(name='MULTIPLIER', value=f'mult -->{lev.mult}')
    await bot.say(embed=embed)
Beispiel #3
0
def do_main(no_intro=0, the_level=0):
    global flags

    print("hello from zanthor do_main")

    pygame.mixer.pre_init(22050, -16, 2, 1024)

    pygame.init()
    pygame.font.init()
    #pygame.display.set_caption("The Wrath of ZANTHOR") #It's powered by steam!")
    pygame.display.set_caption(
        "The Wrath of ZANTHOR!  It's powered by steam!  h key for help")

    #flags = FULLSCREEN
    print flags
    print(SW, SH)
    screen = pygame.display.set_mode((SW, SH), flags)

    # Map the back button to the escape key.
    if android:
        android.map_key(android.KEYCODE_BACK, pygame.K_ESCAPE)

    print("initialising joystick module")

    pygame.joystick.init()
    joystics = []
    num_joys = pygame.joystick.get_count()

    print "initialising joys", num_joys
    for x in range(num_joys):
        print "x joy is:", x
        j = pygame.joystick.Joystick(x)
        j.init()
        joystics.append(j)

    print "initialising joys: done."

    game = Game()
    game.should_restore_stats = True
    game.backup_upgradable_amounts = None
    game.backup_castle_stats = None

    # the intro is not done first.
    #game.run(states.Title(game),screen)
    if no_intro == 0:
        game.run(intro.Intro(game), screen)

    elif no_intro == 1:
        #game.run(level.Level(game, 0,100),screen)
        game.run(menu.Menu(game), screen)
    elif no_intro == 3:
        # we load the level number from the levels defined in menu.
        n = menu.data[no_intro][4]
        perc = menu.data[no_intro][5]
        music = menu.data[no_intro][7]
        game.run(level.Level(game, n, perc, music), screen)
    else:
        game.run(level.Level(game, no_intro, 100, None), screen)
Beispiel #4
0
    def startGame(self):
        s = shelve.open(Menu.LEVEL_FILE)

        try:
            data = s["level_01"]
            l = level.Level()
            l.gameObjects = data
        except:
            l = level.Level()
            l.generateMap()

        s.close()

        Game.curGame.loadScene(l)
Beispiel #5
0
 def test_update_3(self):
     """ Test update with velocity """
     modobj = sprite.ModelObject(self.model)
     level.Level(mapsize=(1000, 1000),
                 screen=SCREEN).add(modobj, (100, 100))
     modobj.velocity = [1, 1]
     modobj.update()
     self.assertEquals(modobj.maprect.center, (101, 101))
     self.assertEquals(modobj.maprect.topleft, (90, 90))
     self.assertEquals(modobj.rect.topleft, (90, 90))
     modobj.update()
     self.assertEquals(modobj.maprect.center, (102, 102))
     self.assertEquals(modobj.maprect.topleft, (91, 91))
     self.assertEquals(modobj.rect.topleft, (91, 91))
     modobj.velocity = [0, -1]
     modobj.update()
     self.assertEquals(modobj.maprect.topleft, (91, 90))
     self.assertEquals(modobj.rect.topleft, (91, 90))
     modobj.velocity = [-1, 0]
     modobj.update()
     self.assertEquals(modobj.maprect.topleft, (90, 90))
     self.assertEquals(modobj.rect.topleft, (90, 90))
     modobj.velocity = [-1, -1]
     modobj.update()
     self.assertEquals(modobj.maprect.topleft, (89, 89))
     self.assertEquals(modobj.rect.topleft, (89, 89))
     modobj.update()
     self.assertEquals(modobj.maprect.topleft, (88, 88))
     self.assertEquals(modobj.rect.topleft, (88, 88))
Beispiel #6
0
 def test_update_4(self):
     """ Test update with angular velocity """
     modobj = sprite.ModelObject(self.model)
     level.Level(screen=SCREEN).add(modobj, (11, 11))
     modobj.angular_velocity = 1
     modobj.update()
     self.assertEquals(modobj.angle, 1)
     self.assertEquals(modobj.maprect.topleft, (0, 0))
     self.assertEquals(modobj.rect.topleft, (0, 0))
     self.assertEquals(modobj.rect.center, (11, 11))
     modobj.update()
     self.assertEquals(modobj.angle, 2)
     self.assertEquals(modobj.maprect.topleft, (0, 0))
     self.assertEquals(modobj.rect.topleft, (0, 0))
     self.assertEquals(modobj.rect.center, (11, 11))
     modobj.angular_velocity = 90
     modobj.update()
     self.assertEquals(modobj.angle, 92)
     self.assertEquals(modobj.maprect.topleft, (0, 0))
     self.assertEquals(modobj.rect.topleft, (0, 0))
     self.assertEquals(modobj.rect.center, (11, 11))
     modobj.angular_velocity = 43
     modobj.update()
     self.assertEquals(modobj.angle, 135)
     self.assertEquals(modobj.maprect.topleft, (0, 0))
     self.assertEquals(modobj.rect.topleft, (-5, -5))
     self.assertEquals(modobj.rect.center, (11, 11))
     modobj.angular_velocity = 45
     modobj.update()
     self.assertEquals(modobj.angle, 180)
     self.assertEquals(modobj.maprect.topleft, (0, 0))
     self.assertEquals(modobj.rect.topleft, (0, 0))
     self.assertEquals(modobj.rect.center, (11, 11))
Beispiel #7
0
	def __init__(self, curLevel):
		"""Initialize"""

		"""Load level info"""
		self.level = level.Level(curLevel)

		"""Set the window Size"""
		self.width = self.level.width
		self.height = self.level.height

		"""Set block size"""
		self.BLOCK_SIZE = self.level.blockSize

		"""Initialize PyGame"""
		pygame.init()

		"""Create the Screen"""
		self.screen = pygame.display.set_mode((self.width, self.height))

		self.background = None
		self.layout = None
		self.sprites_block = None
		self.character = None
		self.sprites_character = None
		self.sprites_pellet = None
		self.sprites_spellet = None
		self.npc = None
		self.sprites_npc = None
 def CreateNewLevel(self, name, numrows, numcols, author):
     # Lanza fuera la excepción Exception
     newlevel = level.Level(name, numrows, numcols, author)
     if not self.__CheckName(name):
         self.__levels.append(newlevel)
         return True
     return False
Beispiel #9
0
 def test_scroll(self):
     modobj = sprite.ModelObject(self.model)
     level.Level(screen=SCREEN).add(modobj, (11, 11))
     modobj.scroll((10, 10))
     self.assertEquals(modobj.maprect.topleft, (0, 0))
     self.assertEquals(modobj.maprect.center, (11, 11))
     self.assertEquals(modobj.rect.topleft, (10, 10))
     self.assertEquals(modobj.rect.center, (21, 21))
Beispiel #10
0
def runGameHost():

    window = py.display.set_mode((600, 600))
    white_screen_col = py.Color(255, 255, 255)
    fps_controller = py.time.Clock()

    lvl = l.Level('map1.png', 20, (50, 50))

    clientPlayer = player.Base_Player(300, 300, py.Color(255, 0, 150), window,
                                      0)

    hostPlayer = player.Base_Player(350, 350, py.Color(0, 255, 0), window, 1)

    connections, names = net.get_connections()
    for i in connections:
        i.send(bytes("START", 'utf-8'))

    play = True

    frame = 0

    while play:
        py.draw.rect(window, white_screen_col, (0, 0, 600, 600))
        lvl.draw(window)
        hostPlayer.draw()
        clientPlayer.draw()

        py.display.update()
        for event in py.event.get():
            if event.type == QUIT:
                py.quit()
                play = False
                return

        player_input = player.Player_Input.generate(1)
        hostPlayer.apply_movement(player_input, lvl)

        data, addr = connections[0].socket.recvfrom(
            1024)  # buffer size is 1024 bytes

        try:
            clientMovement = pickle.loads(data)
            clientPlayer.apply_movement(clientMovement, lvl)
        except:
            print("Nothing works")

        toSend = []
        toSend.append(player.copy.copy(hostPlayer.current_position))
        toSend.append(player.copy.copy(clientPlayer.current_position))
        toSendData = player.pickle.dumps(toSend)
        connections[0].socket.sendto(toSendData,
                                     (connections[0].IP, connections[0].port))

        frame += 1
        if frame % 30 == 0:
            print(frame)

        fps_controller.tick(30)
Beispiel #11
0
    def update(self):
        pressedkeys = pygame.key.get_pressed()
        for e in pygame.event.get():
            if e.type == pygame.KEYDOWN:
                if e.key == pygame.K_ESCAPE:
                    sys.exit()
                if e.key == pygame.K_k:
                    self.die()
                if e.key == pygame.K_r:
                    self.prevlifeframe = 0
                    self.prevlifeindex = 0
                    self.prevlives = []
                    self.currentlife = [
                        replay.InputState(pygame.key.get_pressed())
                    ]
                    self.player.respawn()
                    for ent in self.level.entities:
                        ent.reset()
            elif e.type == pygame.QUIT:
                sys.exit()
            elif e.type == pygame.USEREVENT + 2:  #level win
                #TODO cleaner level changing, at the very least an array of levels...
                if self.level_count > 0:
                    sys.exit()
                else:
                    self.level = level.Level("../assets/lvl/level1.lvl")
                    self.prevlifeframe = 0
                    self.prevlifeindex = 0
                    self.prevlives = []
                    self.currentlife = [
                        replay.InputState(pygame.key.get_pressed())
                    ]
                    self.camera.bounds = self.level.map_surface.get_rect()
                    self.player.spawn_x = self.level.spawn_x
                    self.player.spawn_y = self.level.spawn_y
                    self.player.respawn()
                    self.level_count += 1

        #store current life's state.
        if pressedkeys != self.currentlife[-1].keys:
            self.currentlife.append(replay.InputState(pressedkeys))
        else:
            self.currentlife[-1].frames += 1

        for life in self.prevlives:
            life.replay_step(self.level.colliders)

        for ent in self.level.entities:
            ent.update()

        self.player.update(pressedkeys, self.level.colliders)
        self.camera.center_at(self.player.rect)
        self.camera.update()

        #call death code only if current player dies. Replays will simply stop working and disappear.
        if self.player.dead:
            self.die()
Beispiel #12
0
 def nextlevel(self):
     """Play the next level"""
     self.board.clear()
     title = ('level ' + str(self.levelnum + 1) + '/' + str(self.numlevels))
     # play it
     self.level = level.Level(self.game, self, title,
                              self.alllevels[self.levelnum])
     # if here, we completed the level
     self.levelnum += 1
Beispiel #13
0
 def test_update_1(self):
     """ Test update with no animation update, no angular velocity, no
     velocity """
     modobj = sprite.ModelObject(self.model)
     level.Level(screen=SCREEN).add(modobj, (11, 11))
     modobj.update()
     self.assertEquals(modobj.image, modobj.animation_view.frame)
     self.assertEquals(modobj.maprect.topleft, (0, 0))
     self.assertEquals(modobj.rect.topleft, (0, 0))
 def __init__(self, caption):
     self.screen = pg.display.get_surface()
     self.clock = pg.time.Clock()
     self.fps = 60.0
     self.keys = pg.key.get_pressed()
     self.done = False
     self.caption = caption
     self.level = level.Level()
     self.player = self.level.player
async def pot(ctx, amount):
    allowance = not_allowed(ctx, pot.name, bot)
    if allowance[0]:
        await bot.say(f'acess denied,channel for ={pot.name} is {allowance[1]}'
                      )
        return

    if amount == 't':
        jackpot = game.jackpot(0, ctx)
        jackpot.time_delta()
        await bot.say(f'{round(40-jackpot.delta)} seconds left')
        return

    lev = level.Level(ctx)
    check = utils.Check(ctx)
    embed = check.embed

    balance = check.balance()
    amount = utils.Check.amount(amount, balance)

    if utils.Check.broke(amount, balance):
        await check.display(amount, balance, bot)
        return
    else:
        jackpot = game.jackpot(amount, ctx)
        jackpot.join(amount, ctx.message.channel.id)

        log = statistics.bet_log(ctx)

        log.update_count()

        chances = jackpot.chances()
        if jackpot.time_delta():
            winner = jackpot.get_winner()
            jackpot.update(winner, ctx)
            chance = [i for i in chances if winner[0][0] in i]

            await bot.say('AND THE WINNER IS.....')
            for i in range(0, 5):
                await bot.say('*drum rolls*')
                await asyncio.sleep(1)
            await bot.say(f'@{winner[0][0]} won with {chance[0][0]*100}%')
            lev.get_level()
            lev.evaluate(amount)
        else:
            vals = jackpot.get_stake_and_size()
            embed.add_field(name='POT SIZE', value=f'{vals[0]}/4')
            embed.add_field(name='POT STAKE', value=f'{vals[1]}')

            display = ''
            for i in chances:
                display += f'User: {i[1]} \nChance: {i[0]*100}% \n'
            embed.add_field(name='CHANCES', value=display + '\n')
            await bot.say(embed=embed)
            lev.get_level()
            lev.evaluate(amount)
Beispiel #16
0
 def test_01_load_invalid_level(self):
     """ test loading an invalid level"""
     selector = selector_fake.SelectorFake()
     loaded_level = level.Level(selector)
     has_error = False
     try:
         loaded_level.load("../test/test_samples/level/invalid/", state.LevelState.Instantiated)
     except jsonschema.exceptions.ValidationError:
         has_error = True
     self.assertTrue(has_error)
Beispiel #17
0
    def goToNextLevel(self):
        import pickle, shelve, menu
        s = shelve.open(menu.Menu.LEVEL_FILE)

        self.level += 1

        try:
            data = s["level_0" + str(self.__level)]
            l = level.Level()
            l.gameObjects = data
        except:
            l = level.Level()
            l.generateMap()

        l.player = self

        s.close()

        Game.curGame.loadScene(l)
Beispiel #18
0
 def test_03_structure_personalization(self):
     """Test the instantiation algo using a fake selector"""
     selector = selector_fake.SelectorFake()
     loaded_level = level.Level(selector)
     loaded_level.load("../test/test_samples/level/simple_1r_0b_instantiated/", state.LevelState.Instantiated)
     self.assertIsNotNone(loaded_level)
     loaded_level.structure_personalization()
     output = "/tmp/test_03_structure_personalization"
     self.remake_dest(output)
     loaded_level.save(output)
Beispiel #19
0
	def __init__(self,game,value):
		self.game = game
		
		self.cur = 0
		self.options = [
			("Play < $l >",level.Level(self.game,None)),
			("High Scores",HighScores(self.game,None)),
			("Help",Help(self.game,None)),
			("Quit",engine.Quit(self.game,None)),
			]
Beispiel #20
0
def check_level(directory, filename):
    """ Get level, check it loads and return it"""
    if directory == '':
        print("Error, expected directory. See --help for info.")
        sys.exit(1)
    if not filename in os.listdir(directory):
        print("Error, expected directory with ", filename,
              "file. See --help for info.")
        sys.exit(1)
    return level.Level(directory + "/" + filename,
                       selector_regular.SelectorRegular())
Beispiel #21
0
 def __init__(self):
     self.level = level.Level(0, 0)
     self.player = player.Player()
     self.player.pos = 100, 100
     self.rescue_sound = pyglet.media.load("sounds/rescue.wav", streaming=False)
     self.rescued_mans = {}
     self.fade_amount = 1.0
     self.state = FADE_IN
     
     fade_image = pyglet.image.load("images/fade.png")
     self.fade_images = pyglet.image.ImageGrid(fade_image, 1, 38)
Beispiel #22
0
    def __init__(self, ctrl):
        super(PlayScene, self).__init__(ctrl)
        self.player = player.Player(self.ctrl, self)
        self.bg_color = (100, 128, 64)
        w, h = self.ctrl.screen.get_size()
        self.camera = camera.Camera(self.player.rect, w, h)
        self.level = level.Level('data/map.tmx')

        self.entities = []
        self.objects = self.level.generate_objects(self.ctrl)
        self.enemies = enemies.EnemyCtrl(self.ctrl, self)
Beispiel #23
0
def main():

    """ your app starts here
    """
    pygame.init()

    screen = pygame.display.set_mode(settings.DISPLAY_SIZE)

    while 1:
        level1 = level.Level(screen)
        level1.run()
Beispiel #24
0
    def __init__(self):
        pg.init()
        self.screensize = (480, 480)
        self.screen = pg.display.set_mode(self.screensize)
        self.screenrect = self.screen.get_rect()
        self.clock = pg.time.Clock()
        self.fps = 60
        self.done = False

        self.level = level.Level(self.screen)
        self.player = player.Player(self.screenrect.center)
Beispiel #25
0
def initGame():
	filename = os.path.join(os.getcwd(), "map.png")
	print "Trying to open " + filename
	tileset = loadTileset(filename, TILE_SIZE, TILE_SIZE)
	Game.level = level.Level(Game.screen, tileset)
	print "Tileset loaded"
	if loadLevel() == False:
		return False
	filename = os.path.join(os.getcwd(), "player.png")
	print "Trying to open " + filename
	loadPlayer(filename)
	return True
Beispiel #26
0
    def __init__(self):
        self.saveManager = saveManager.SaveManager()
        if input("Load level? y/n \n> ") == "y":
            self.level = self.saveManager.loadLevel(
                int(input("Enter level id:\n> ")))
        else:
            self.level = level.Level()
            self.level.width = int(input("Enter width:\n> "))
            self.level.height = int(input("Enter height:\n> "))

        self.camera = camera.Camera()
        self.renderer = renderer.Renderer(self.camera,
                                          self.level,
                                          editorMode=True)
        self.running = True
        self.mouseDown = False
        self.mouseX = 0
        self.mouseY = 0
        self.absMouseX = 0
        self.absMouseY = 0
        self.clicked = False
        self.keysDown = {
            "esc": False,
            "w": False,
            "a": False,
            "s": False,
            "d": False,
            "q": False,
            "e": False,
            "z": False,
            "x": False,
            "ctrl": False
        }
        self.keysPressed = {
            "esc": False,
            "w": False,
            "a": False,
            "s": False,
            "d": False,
            "q": False,
            "e": False,
            "z": False,
            "x": False,
            "ctrl": False
        }
        self.currentTime = time.clock()
        self.timePassed = 0
        self.gridLock = 4
        self.mode = MODE_WALLS
        self.idSelected = 0
        pygame.font.init()
        self.uiFont = pygame.font.SysFont("Arial", 30)
        self.mainLoop()
 def event(self, e):
     if e.type is USEREVENT and e.action == 'down':
         self.cur = (self.cur + 1) % len(self.items)
         self.repaint()
     elif e.type is USEREVENT and e.action == 'up':
         self.cur = (self.cur - 1 + len(self.items)) % len(self.items)
         self.repaint()
     elif e.type is USEREVENT and e.action == 'left':
         self.game.lcur = (self.game.lcur - 1 + len(self.levels)) % len(
             self.levels)
         self.cur = 1
         self.repaint()
     elif e.type is USEREVENT and e.action == 'right':
         self.game.lcur = (self.game.lcur + 1) % len(self.levels)
         self.cur = 1
         self.repaint()
     elif e.type is USEREVENT and e.action == 'exit':
         return engine.Quit(self.game)
     elif e.type is USEREVENT and (e.action == 'menu'
                                   or e.action == 'jump'):
         text, value = self.items[self.cur]
         if value == 'start':
             self.game.init_play()
             self.game.lcur = 0
             import level
             l = level.Level(self.game, None, self)
             return Transition(self.game, l)
         elif value == 'play':
             self.game.init_play()
             import level
             l = level.Level(self.game, None, self)
             return Transition(self.game, l)
         elif value == 'quit':
             return engine.Quit(self.game)
         elif value == 'credits':
             return Transition(self.game, Credits(self.game, self))
         elif value == 'help':
             return Transition(self.game, Help(self.game, self))
     elif e.type is KEYDOWN and e.key == K_d:
         self.debug_mode()
Beispiel #28
0
 def __init__(self):
     self.timer = pygame.time.Clock()
     self.display = pygame.display.get_surface()
     self.level_manager = state.StateMachine(self, level.Level())
     self.player = player.Player()
     Game.player = self.player
     self.hud_manager = state.StateMachine(
         self, hud.Hud(self, self.player, self.timer))
     self.background = pygame.image.load(
         "data/images/city.png").convert_alpha()
     surface_manager.add(self.player)
     self.music = pygame.mixer.Sound("data/sound/game.wav")
     self.music.play(loops=-1)
Beispiel #29
0
 def appStarted(self):
     self.setSize(640, 480)
     self.player = creature.Player(self, 10, 2, 2)
     self.levels = []
     self.levels.append(level.Level(self, self.player))
     self.currentLevel = 0
     self.turns = 0
     self.addMode(StartMode(name="start"))
     self.addMode(GameMode(name="game"))
     self.addMode(Inventory(name="inv"))
     self.addMode(Win(name="win"))
     self.addMode(Lose(name="lose"))
     self.setActiveMode('start')
 def ImportLevelFromFile(self, filename):
     # Lanza fuera la excepción Exception
     newlevel = level.Level("", 0, 0)
     from xml.dom import minidom
     xmldoc = minidom.parse(filename)
     levels = xmldoc.getElementsByTagName('level')
     if len(levels) != 1:
         raise Exception('Needed just one <level> tag in file.')
     newlevel.fromXML(levels[0])
     if not self.__CheckName(newlevel.getName()):
         self.__levels.append(newlevel)
         return True
     return False