コード例 #1
0
    def test_extraction_interception(self):
        """
		Intercepted extraction does not change corporation assets
		"""
        begin_assets_target = self.eo.target_corporation.assets
        begin_assets_kidnapper = self.eo.kidnapper_corporation.assets

        po = ProtectionOrder(
            player=self.p,
            protected_corporation=self.c,
            defense=ProtectionOrder.EXTRACTION,
            hidden_percents=10,
        )
        po.save()

        self.eo.additional_percents = 10
        self.eo.save()

        self.eo.resolve()
        self.assertEqual(
            self.reload(self.eo.target_corporation).assets,
            begin_assets_target)
        self.assertEqual(
            self.reload(self.eo.kidnapper_corporation).assets,
            begin_assets_kidnapper)
コード例 #2
0
    def test_get_protection_values(self):
        """
		Protection values should include Protection runs.
		"""
        dso = DataStealOrder(
            stealer_corporation=self.c2,
            player=self.p,
            target_corporation=self.c,
            additional_percents=7,
        )
        dso.save()

        self.assertEqual(dso.get_protection_values(),
                         [dso.target_corporation.base_corporation.datasteal])

        po = ProtectionOrder(
            player=self.p,
            protected_corporation=self.c,
            defense=ProtectionOrder.DATASTEAL,
            hidden_percents=10,
        )
        po.save()

        self.assertEqual(dso.get_protection_values(), [
            po.get_success_probability(),
            dso.target_corporation.base_corporation.datasteal
        ])
コード例 #3
0
    def test_mdc_CCIB_line_negative_effects(self):
        """
		Test what happens when the CCIB party line is chosen to players who voted for transparency
		"""

        self.set_turn_line(MDCVoteOrder.CCIB, MDCVoteOrder.CCIB,
                           MDCVoteOrder.TRAN)
        self.g.resolve_current_turn()

        # Player 3 has voted transparency, so he shouldn't be able to have a protection run
        po = ProtectionOrder(
            player=self.p3,
            protected_corporation=self.c,
            defense=ProtectionOrder.SABOTAGE,
        )
        self.assertRaises(OrderNotAvailable, po.clean)

        # Player 1 still can
        po2 = ProtectionOrder(
            player=self.p,
            protected_corporation=self.c,
            defense=ProtectionOrder.SABOTAGE,
        )
        po2.clean()
コード例 #4
0
    def test_has_base_value(self):
        """
		Protection has defaut protection values
		"""

        po = ProtectionOrder(
            player=self.p,
            protected_corporation=self.c,
            defense=ProtectionOrder.DATASTEAL,
            additional_percents=1,
        )
        po.save()

        self.assertEqual(
            po.get_success_probability(), po.additional_percents * 10 +
            po.BASE_SUCCESS_PROBABILITY[po.defense])
コード例 #5
0
    def test_protection_run_task(self):
        """
		Check the task solves the run
		"""
        po = ProtectionOrder(
            player=self.p,
            protected_corporation=self.c,
            defense=ProtectionOrder.SABOTAGE,
        )
        po.clean()
        po.save()
        po.additional_percents = 10
        po.save()

        self.g.resolve_current_turn()
        self.assertEqual(
            self.reload(self.p).money, self.INITIAL_MONEY - po.get_cost())
コード例 #6
0
    def test_sabotage_interception(self):
        """
		Intercepted sabotage does not change corporation assets
		"""
        begin_assets = self.so.target_corporation.assets

        po = ProtectionOrder(
            player=self.p,
            protected_corporation=self.c,
            defense=ProtectionOrder.SABOTAGE,
            hidden_percents=10,
        )
        po.clean()
        po.save()

        self.so.additional_percents = 10
        self.so.save()

        self.so.resolve()
        self.assertEqual(
            self.reload(self.so.target_corporation).assets, begin_assets)
コード例 #7
0
    def test_datasteal_interception(self):
        """
		Intercepted datasteal should not change corporation assets.
		"""
        begin_assets_stealer = self.dso.stealer_corporation.assets

        po = ProtectionOrder(player=self.p,
                             protected_corporation=self.c,
                             defense=ProtectionOrder.DATASTEAL)
        po.clean()
        po.save()

        po.additional_percents = 10
        po.save()

        self.dso.additional_percents = 10
        self.dso.save()

        self.dso.resolve()
        self.assertEqual(
            self.reload(self.dso.stealer_corporation).assets,
            begin_assets_stealer)