コード例 #1
0
 def test_cannot_set_non_lock_as_door_lock(self):
     room2 = Room(
         self.game, "A different place", "Description of a different place. "
     )
     c = DoorConnector(self.game, self.start_room, "n", room2, "s")
     lock = Surface(self.game, "lock?")
     with self.assertRaises(IFPError):
         c.setLock(lock)
コード例 #2
0
 def setUp(self):
     super().setUp()
     self.room2 = Room(self.game, "A hot room",
                       "This room is uncomfortably hot. ")
     self.door = DoorConnector(self.game, self.start_room, "se", self.room2,
                               "nw")
     self.key = Key(self.game, "key")
     self.me.addThing(self.key)
     self.lock = Lock(self.game, False, self.key)
     self.lock.is_locked = False
     self.door.setLock(self.lock)
コード例 #3
0
    def test_can_travel_DoorConnector(self):
        room1 = Room(self.game, "A place", "Description of a place. ")
        room2 = Room(self.game, "A different place",
                     "Description of a different place. ")
        c = DoorConnector(self.game, room1, "n", room2, "s")

        self._assert_can_travel(room1, room2, c)
コード例 #4
0
 def test_lock_already_attached_to_something_cannot_be_applied_to_a_door(self):
     room2 = Room(
         self.game, "A different place", "Description of a different place. "
     )
     c = DoorConnector(self.game, self.start_room, "n", room2, "s")
     lock = Lock(self.game, is_locked=True, key_obj=None)
     c.setLock(lock)
     c2 = DoorConnector(self.game, self.start_room, "e", room2, "w")
     with self.assertRaises(IFPError):
         c2.setLock(lock)
コード例 #5
0
    def test_cannot_travel_closed_and_locked_door(self):
        room2 = Room(
            self.game, "A different place", "Description of a different place. "
        )
        c = DoorConnector(self.game, self.start_room, "n", room2, "s")
        lock = Lock(self.game, is_locked=True, key_obj=None)
        c.setLock(lock)

        self.assertItemIn(
            self.me, self.start_room.contains, "test needs player to start here"
        )
        self.assertIs(self.start_room.north, c)

        self.game.turnMain("n")

        self.assertIn(
            f"{c.entrance_a.capNameArticle(True)} is locked. ", self.app.print_stack
        )

        self.assertIs(self.me.location, self.start_room)
        self.assertItemIn(
            self.me, self.start_room.contains, "player should not have moved"
        )
コード例 #6
0
    def test_can_travel_DoorConnector(self):
        room1 = Room(self.game, "A place", "Description of a place. ")
        room2 = Room(
            self.game, "A different place", "Description of a different place. "
        )
        c = DoorConnector(self.game, room1, "n", room2, "s")
        c.entrance_a.makeClosed()

        self._assert_can_travel(room1, room2, "n", "s")
        self.assertIn("You open the north door. ", self.app.print_stack)
        self.assertIn("You go through the north door. ", self.app.print_stack)
        self.assertIn("You go through the south door. ", self.app.print_stack)
        self.assertIn(
            room1.desc + "There is a door to the north. It is open. ",
            self.app.print_stack,
        )
コード例 #7
0
class TestDoorVerbs(IFPTestCase):
    def setUp(self):
        super().setUp()
        self.room2 = Room(self.game, "A hot room",
                          "This room is uncomfortably hot. ")
        self.door = DoorConnector(self.game, self.start_room, "se", self.room2,
                                  "nw")
        self.key = Key(self.game, "key")
        self.me.addThing(self.key)
        self.lock = Lock(self.game, False, self.key)
        self.lock.is_locked = False
        self.door.setLock(self.lock)

    def test_open_door(self):
        self.assertFalse(
            self.door.entrance_a.is_open,
            "This test needs the door to be initially closed",
        )
        self.assertFalse(
            self.door.entrance_a.lock_obj.is_locked,
            "This test needs the door to be initially unlocked",
        )

        self.game.turnMain("open door")

        self.assertTrue(
            self.door.entrance_a.is_open,
            "Performed open verb on unlocked door, but door is closed. "
            f"Msg: {self.app.print_stack[-1]}",
        )

    def test_close_door(self):
        self.door.entrance_a.makeOpen()
        self.assertTrue(
            self.door.entrance_a.is_open,
            "This test needs the door to be initially open",
        )

        self.game.turnMain("close door")

        self.assertFalse(
            self.door.entrance_a.is_open,
            "Performed close verb on open door, but door is open. "
            f"Msg: {self.app.print_stack[-1]}",
        )

    def test_lock_door(self):
        self.lock.is_locked = False
        self.assertIn(self.key.ix, self.me.contains)
        self.assertIn(self.key, self.me.contains[self.key.ix])

        self.game.turnMain("lock door")

        self.assertTrue(
            self.lock.is_locked,
            "Performed lock verb with key in inv, but lock is unlocked. "
            f"Msg: {self.app.print_stack[-1]}",
        )

    def test_unlock_door(self):
        self.lock.is_locked = True
        self.assertIn(self.key.ix, self.me.contains)
        self.assertIn(self.key, self.me.contains[self.key.ix])

        self.game.turnMain("unlock door")

        self.assertFalse(
            self.lock.is_locked,
            "Performed unlock verb with key in inv, but lock is locked. "
            f"Msg: {self.app.print_stack[-1]}",
        )

    def test_lock_door_with(self):
        self.lock.is_locked = False
        self.assertIn(self.key.ix, self.me.contains)
        self.assertIn(self.key, self.me.contains[self.key.ix])

        self.game.turnMain("lock door with key")

        self.assertTrue(
            self.lock.is_locked,
            "Performed lock with verb with key, but lock is unlocked. "
            f"Msg: {self.app.print_stack[-1]}",
        )

    def test_unlock_door_with(self):
        self.lock.is_locked = True
        self.assertIn(self.key.ix, self.me.contains)
        self.assertIn(self.key, self.me.contains[self.key.ix])

        self.game.turnMain("unlock door with key")

        self.assertFalse(
            self.lock.is_locked,
            "Performed unlock verb with key, but lock is locked. "
            f"Msg: {self.app.print_stack[-1]}",
        )

    def test_open_locked_door(self):
        self.lock.is_locked = True
        self.assertFalse(
            self.door.entrance_a.is_open,
            "This test needs the door to be initially closed",
        )
        self.assertTrue(
            self.door.entrance_a.lock_obj.is_locked,
            "This test needs the door to be initially locked",
        )

        self.game.turnMain("open door")

        self.assertFalse(
            self.door.entrance_a.is_open,
            "Performed open verb on locked door, but door is open. "
            f"Msg: {self.app.print_stack[-1]}",
        )
コード例 #8
0
ファイル: testgame.py プロジェクト: JSMaika/intficpy
boxlock = Lock(game, True, silverkey)
box.setLock(boxlock)

# Beach
beach = OutdoorRoom(game, "Beach, near the shack",
                    "You find yourself on an abandoned beach. ")


def beachArrival(game):
    freeEnding.endGame(game)


beach.arriveFunc = beachArrival

shackdoor = DoorConnector(game, startroom, "e", beach, "w")
shackdoor.entrance_a.description = "To the east, a door leads outside. "
shackdoor.entrance_b.description = "The door to the shack is directly west of you. "

cabinlock = Lock(game, True, rustykey)
shackdoor.setLock(cabinlock)

startroom.exit = shackdoor
beach.entrance = shackdoor

# Attic

attic = Room(game, "Shack, attic", "You are in a dim, cramped attic. ")
shackladder = LadderConnector(game, startroom, attic)
shackladder.entrance_a.description = (
    "Against the north wall is a ladder leading up to the attic. ")