예제 #1
0
 def apply(self, to, second):
     if to == second:
         return
     delta = helper.try_normalize(second.pos - to.pos)
     pos1 = to.pos + delta * (to.radius + 15)
     pos2 = second.pos - delta * (second.radius + 15)
     p1 = portal.Portal(to.scene, pos1, second, to.owning_civ)
     p2 = portal.Portal(to.scene, pos2, to, to.owning_civ)
     p1.other_portal = p2
     p2.other_portal = p1
     to.scene.game_group.add(p1)
     to.scene.game_group.add(p2)
     return super().apply(to)
예제 #2
0
    def makeBoard(self):

        # board should be [x][y]
        self.tiles = [[tile.Tile("empty") for y in range(self.height)] for x in range(self.width)]

        # populate static objects: walls, lava, and exit

        if "walls" in self.levelData:
            for wall in self.levelData["walls"]:
                x = wall["position"][0]
                y = wall["position"][1]
                self.tiles[x][y].type = "wall"

        if "deathTiles" in self.levelData:
            for deathTile in self.levelData["deathTiles"]:
                x = deathTile["position"][0]
                y = deathTile["position"][1]
                self.tiles[x][y].type = "lava"

        exitX = self.levelData["exit"]["position"][0]
        exitY = self.levelData["exit"]["position"][1]

        self.tiles[exitX][exitY].type = "exit"

        # Need to figure out how wormholes will be stored

        if "wormholes" in self.levelData:
            for wormhole in self.levelData["wormholes"]:
                entranceX = wormhole["positionEntrance"][0]
                entranceY = wormhole["positionEntrance"][1]
                exitX = wormhole["positionExit"][0]
                exitY = wormhole["positionExit"][1]
                entranceDirection = wormhole["directionEntrance"]
                exitDirection = wormhole["directionExit"]

                self.tiles[exitX][exitY] = portalExit.PortalExit(exitX, exitY, exitDirection)
                self.tiles[entranceX][entranceY] = portal.Portal(entranceDirection, self.tiles[exitX][exitY])
                self.wormholes.append(self.tiles[entranceX][entranceY])

        # populate keys

        if "keys" in self.levelData:
            for keyObj in self.levelData["keys"]:
                x = keyObj["startingPosition"][0]
                y = keyObj["startingPosition"][1]
                xmin = keyObj["positionBoundsX"][0]
                xmax = keyObj["positionBoundsX"][1]
                ymin = keyObj["positionBoundsY"][0]
                ymax = keyObj["positionBoundsY"][1]
                self.tiles[x][y].key = True
                self.keys.append(key.Key(x, y, xmin, xmax, ymin, ymax))
예제 #3
0
    def crear_portal(self):
        self.list_de_casillas_con_pared_rompible = []
        for i in range(0, len(self.casillas)):
            consulta_a_casilla = self.casillas[
                i].get_id_casilla_si_esta_desocupada()
            if consulta_a_casilla != None:
                self.list_de_casillas_con_pared_rompible.append(
                    consulta_a_casilla)

        randomizador = random.randint(
            0,
            len(self.list_de_casillas_con_pared_rompible) - 1)
        self.portal.append(
            portal.Portal(
                self.list_de_casillas_con_pared_rompible[randomizador]))
예제 #4
0
async def main1(loop):
    logging.info("{}".format(loop))

    # test_tcp_accept1 = test_tcp_accept.TestTCPAccept(loop)
    # test_tcp_accept1.run()

    # test = test_session.Test(loop)
    # await test.run()

    # test_tcp_connect2 = test_tcp_connect.TestTCPConnect(loop)
    # test_tcp_connect2.run()

    _portal = portal.Portal(loop)
    await _portal.run()

    await asyncio.sleep(2)
    loop.stop()
예제 #5
0
    def __init__(self, all_sprites, hero, game_area):
        # forest floor
        self.tileset = pygame.image.load(
            "Assets/Sprites/Ground/SwampFloor.png").convert()
        for x in range(5):
            all_sprites.add(flora.Flora("Tree2"))
        # forest enemies
        for x in range(20):
            all_sprites.add(enemy.Enemy(hero, game_area, "Skeletor"))
            all_sprites.add(enemy.Enemy(hero, game_area, "Cacodemon"))

        all_sprites.add(hero)
        all_sprites.add(item.Item(game_area, 150, 150))
        all_sprites.add(portal.Portal(game_area, 350, 350))
        # forest flora
        self.bonzai_tree1 = flora.Flora("Bonzai")

        all_sprites.add(self.bonzai_tree1)
        all_sprites.add(hero)
예제 #6
0
	def setUp(self):
		self.p = portal.Portal()
		self.inf = infellowship.InFellowship()
		self.wl = weblink.Weblink()
예제 #7
0
#not used or properly tested, may not actually work

import portal
global main_menu_functions
global macro_menu_functions
global levels

p = portal.Portal(start_serial=False)


def resoDeployer():
    reso = 0
    level = 0
    print("Enter selection, or -1 to return to main menu")
    while reso not in levels:
        reso = input("Deploy to which resonator slot? ")
        if reso == '-1': break
        if not (1 <= reso <= 8):
            print("Invalid selection")
            reso = 0
    while level not in levels:
        level = input("Enter resonator level to deploy: ")
        if level == '-1': break
        if not (1 <= level <= 8):
            print("Invalid level")
            level = 0

    p.deploy_reso(reso, level, 'enl')
    o = ("Level {} reso deployed to slot {}").format(level, reso)
    print(o)
예제 #8
0
    def handle_input(self):
        for e in pygame.event.get():
            if e.type == pygame.QUIT:
                exit()
                
            elif e.type == pygame.KEYDOWN:
                if e.key == K_f:
                    pygame.display.toggle_fullscreen()
                if e.key == K_e:
                    self.mode_edit = not self.mode_edit
                elif self.mode_edit:
                    if e.key == K_a:
                        self.pan_left = True
                    elif e.key == K_d:
                        self.pan_right = True
                    elif e.key == K_w:
                        self.pan_up = True
                    elif e.key == K_s:
                        self.pan_down = True
                    elif e.key == K_COMMA :
                        self.dec_snap_radius= True
                    elif e.key == K_PERIOD :
                        self.inc_snap_radius = True
                    elif e.key == K_k :
                        self.level.save_level(self.level_path)
                    elif e.key == K_x :
                        self.del_mode=not self.del_mode
                    elif e.key == K_RETURN and self.mode_gvol:
                        self.mode_grav_vec = not self.mode_grav_vec
                        self.pos_start=None
                        self.pos_end=None
                    elif e.key == K_g :
                        if self.mode_gvol:#stopping gravity volume
                            self.grav_set=True
                        else: #starting gravity volume
                            self.mode_grav_vec=False
                            self.grav_set=False
                            self.poly_verts=[]
                            self.grav_vec=None
                        self.mode_gvol = not self.mode_gvol
                    elif e.key == K_m and self.del_mode and len(self.level.emitters)>0:
                        del self.level.emitters[-1]
                elif e.key == K_LEFT:
                    self.move_left = True
                    self.swap_keys()
                elif e.key == K_RIGHT:
                    self.move_right = True
                    self.swap_keys()
                elif e.key == K_SPACE and self.on_ground():
                    self.jump = True
                    self.jump_time = JUMP_TIME
                    self.player.jump()

            elif e.type == pygame.KEYUP:
                if self.mode_edit:
                    if e.key == K_a:
                        self.pan_left = False
                    elif e.key == K_d:
                        self.pan_right = False
                    elif e.key == K_w:
                        self.pan_up = False
                    elif e.key == K_s:
                        self.pan_down = False
                    elif e.key == K_COMMA :
                        self.dec_snap_radius= False 
                    elif e.key == K_PERIOD :
                        self.inc_snap_radius = False
                elif e.key == K_LEFT:
                    self.move_left = False
                elif e.key == K_RIGHT:
                    self.move_right = False
                elif e.key == K_SPACE:
                    self.jump = False
                    
            elif e.type == pygame.MOUSEBUTTONDOWN and self.mode_edit:
                if e.button == 1:
                    self.mode_grav_poly=True

                    pos_snap=self.level.check_snap(self.screen2world(e.pos),self.snap_radius)
                    if pos_snap is not None:
                        pos=pos_snap
                    else:
                        pos=self.screen2world(e.pos)
                    self.pos_start=pos
                
                elif e.button == 3:
                    pos = self.screen2world(e.pos)
                    self.level.emitters.append(particles.Emitter(pos))
                    
                elif e.button == 2:
                    pos = self.screen2world(e.pos)
                    if self.level.goal != None:
                        del self.shape_map[self.level.goal.shape]
                        self.space.remove_static(self.level.goal.shape)
                    self.level.goal = portal.Portal(pos)
                    self.shape_map[self.level.goal.shape] = self.level.goal
                    self.space.add_static(self.level.goal.shape)
                
                elif e.button == 4:
                    pos = self.screen2world(e.pos)
                    cn = coin.Coin(pos)
                    self.level.coins.append(cn)
                    self.shape_map[cn.shape] = cn
                    self.space.add_static(cn.shape)                          

            elif e.type == pygame.MOUSEBUTTONUP and self.mode_edit:
                if e.button == 1:
                    pos_snap=self.level.check_snap(self.screen2world(e.pos),self.snap_radius)
                    if pos_snap is not None:
                        pos=pos_snap
                    else:
                        pos=self.screen2world(e.pos)
                    self.pos_end=pos
                    
            elif e.type == JOYHATMOTION:
                x, y = e.value
                if x == 0:
                    self.move_left = False
                    self.move_right = False
                elif x == 1:
                    self.move_right = True
                    self.swap_keys()
                elif x == -1:
                    self.move_left = True
                    self.swap_keys()
            elif e.type == JOYAXISMOTION:
                if e.axis == 0:
                    if e.value < DEADZONE and e.value > -DEADZONE:
                        self.move_left = False
                        self.move_right = False
                    elif e.value >= DEADZONE:
                        self.move_right = True
                        self.swap_keys()
                    elif e.value <= -DEADZONE:
                        self.move_left = True
                        self.swap_keys()
            elif e.type == JOYBUTTONDOWN:
                if e.button == 1 and self.on_ground():
                    self.jump = True
                    self.jump_time = JUMP_TIME
                    self.player.jump()
                    
            elif e.type == JOYBUTTONUP:
                if e.button == 1:
                    self.jump = False

        if self.mode_edit:
            self.pos_mouse=pygame.mouse.get_pos()
            if self.pos_mouse is not None:
                self.pos_mouse=self.screen2world(self.pos_mouse)
                self.mouse_body.position=self.pos_mouse