Exemple #1
0
    def testAutoFeed(self):
        species1 = Species(5, 4, 5)
        species2 = Species(3, 3, 3)
        species3 = Species(3, 5, 4)
        species3a = Species(1, 5, 4)
        species4 = Species(4, 3, 4, [TraitCard("fat-tissue", 0)], 3)
        species5 = Species(4, 3 ,4, [TraitCard("fat-tissue", 0)], 1)
        carn1 = Species(3, 2, 4, [TraitCard("carnivore")])
        carn2 = Species(4, 2, 5, [TraitCard("carnivore"), TraitCard("climbing")])
        attackable = Species(3, 3, 5)
        speciesList1 = [species1, species2]
        speciesList2 = [species3, species3a]
        carnList1 = [carn1]
        carnList2 = [carn2, attackable]

        player1 = PlayerState(1, 0, speciesList1, [])
        player2 = PlayerState(2, 2, speciesList2, [])
        player3 = PlayerState(3, 3, [species4, species5], [])
        player4 = PlayerState(4, 4, [species3], [])
        player5 = PlayerState(5, 5, carnList1)
        player6 = PlayerState(6, 5, carnList2)

        dealer1 = Dealer([player1, player2], 4, [])
        dealer2 = Dealer([player2], 4, [])
        dealer3 = Dealer([player3], 3, [])
        dealer4 = Dealer([player4], 3, [])
        dealer5 = Dealer([player5, player6], 6, [])

        unchanged_player1 = copy.deepcopy(player1)
        unchanged_player2 = copy.deepcopy(player2)
        self.assertTrue(dealer1.auto_feed())
        self.assertEquals(dealer1.fullPlayerIds, [1])
        self.assertEquals(unchanged_player1, player1)
        self.assertEquals(unchanged_player2, player2)

        unchanged_species4 = copy.deepcopy(species4)
        self.assertFalse(dealer3.auto_feed())
        self.assertEquals(species5.fatFood, 1)
        self.assertEquals(unchanged_species4, species4)

        self.assertFalse(dealer2.auto_feed())
        self.assertEquals(species3.food, 3)
        self.assertEquals(species3a.food, 1)

        self.assertTrue(dealer4.auto_feed())
        self.assertEquals(species3.food, 4)

        # no autofeeding on carnivores
        self.assertEquals(carn1.food, 3)
        unchanged_carn2 = copy.deepcopy(carn2)
        self.assertFalse(dealer5.auto_feed())
        self.assertEquals(carn1.food, 3)
        self.assertEquals(unchanged_carn2, carn2)
        self.assertEquals(attackable.population, 5)