def test_unit_debt_for_barbarian_unit(self):
     unit = WorldUnit.objects.get(id=4)
     unit.owner_character = None
     unit.save()
     initialize_unit(unit)
     do_unit_debt_increase(unit)
     self.assertEqual(unit.get_owners_debt(), 0)
    def test_battle_initialization(self):
        self.my_unit = WorldUnit.objects.create(
            owner_character_id=7,
            world_id=2,
            location_id=1003,
            name="Commonwealth lord unit",
            recruitment_type=WorldUnit.CONSCRIPTED,
            type=WorldUnit.LIGHT_INFANTRY,
            status=WorldUnit.FOLLOWING,
            mobilization_status_since=0,
            current_status_since=0,
            generation_size=5,
            default_battle_orders=Order.objects.create(what=Order.CHARGE))

        self.barbarian_unit = WorldUnit.objects.create(
            owner_character=None,
            world_id=2,
            location_id=1003,
            name="Barbarian unit",
            recruitment_type=WorldUnit.CONSCRIPTED,
            type=WorldUnit.LIGHT_INFANTRY,
            status=WorldUnit.FOLLOWING,
            mobilization_status_since=0,
            current_status_since=0,
            generation_size=30,
            default_battle_orders=Order.objects.create(what=Order.MOVE))

        initialize_unit(self.my_unit)
        initialize_unit(self.barbarian_unit)
        self.tile = Tile.objects.get(id=105)
        trigger_battles_in_tile(self.tile)
        self.battle = Battle.objects.get(id=1)

        self.assertTrue(
            WorldUnit.objects.filter(owner_character__isnull=True).exists())
        start_battle(self.battle)

        self.assertTrue(
            BattleOrganization.objects.filter(organization=World.objects.get(
                id=2).get_barbaric_state()).exists())

        self.assertTrue(
            BattleOrganization.objects.filter(organization_id=105).exists())

        self.assertEqual(BattleCharacter.objects.count(), 1)

        self.assertEqual(BattleUnit.objects.count(), 2)
        self.assertEqual(
            BattleUnit.objects.filter(battle_side__battle=self.battle).count(),
            2)

        self.assertEqual(
            BattleSoldier.objects.filter(
                battle_contubernium__battle_unit__battle_side__battle=self.
                battle).count(), 35)

        self.assertEqual(
            BattleSoldierInTurn.objects.filter(
                battle_turn__battle=self.battle).count(), 35)
 def test_create_only_one_conflict(self):
     world = World.objects.get(id=2)
     for unit in WorldUnit.objects.filter(world=world):
         initialize_unit(unit)
     pass_turn(None, None, World.objects.filter(id=2))
     pass_turn(None, None, World.objects.filter(id=2))
     self.assertEqual(Battle.objects.count(), 1)
     Battle.objects.filter(tile__world=world).update(current=False)
     pass_turn(None, None, World.objects.filter(id=2))
     self.assertEqual(Battle.objects.count(), 2)
    def test_create_battle_from_conflict(self):
        initialize_unit(WorldUnit.objects.get(id=1))
        initialize_unit(WorldUnit.objects.get(id=2))
        tile = Tile.objects.get(id=108)
        organization1 = Organization.objects.get(id=105)
        organization2 = Organization.objects.get(id=112)

        battle = create_battle_from_conflict(
            [[organization1], [organization2]], tile)
        self.assertEqual(battle.tile, tile)
 def test_get_largest_conflict_in_list(self):
     initialize_unit(WorldUnit.objects.get(id=1))
     initialize_unit(WorldUnit.objects.get(id=2))
     tile = Tile.objects.get(id=108)
     conflicts = opponents_in_organization_list(
         organizations_with_battle_ready_units(tile), tile)
     result = get_largest_conflict_in_list(conflicts, tile)
     self.assertEqual(len(result), 2)
     self.assertIn(Organization.objects.get(id=105), result[0])
     self.assertIn(Organization.objects.get(id=112), result[1])
     self.assertEqual(len(result), 2)
    def test_barbarian_non_creation_in_occupied_settlement(self):
        settlement = Settlement.objects.get(name="Small Fynkah")
        initialize_settlement(settlement)

        for unit in settlement.worldunit_set.all():
            initialize_unit(unit)

        do_settlement_barbarian_generation(settlement)
        self.assertFalse(
            settlement.worldunit_set.filter(
                owner_character__isnull=True).exists())
Esempio n. 7
0
    def setUp(self):
        self.client.post(
            reverse('account:login'),
            {
                'username': '******',
                'password': '******'
            },
        )
        self.client.get(reverse('world:activate_character',
                                kwargs={'char_id': 5}),
                        follow=True)
        self.tile = Tile.objects.get(id=108)
        self.unit_of_warrior = WorldUnit.objects.get(id=1)
        initialize_unit(self.unit_of_warrior)
        self.unit_of_commonwealth = WorldUnit.objects.get(id=2)
        initialize_unit(self.unit_of_commonwealth)
        self.unit_of_warrior2 = WorldUnit.objects.get(id=3)
        initialize_unit(self.unit_of_warrior2)
        self.unit_of_kingdom = WorldUnit.objects.get(id=4)
        self.unit_of_kingdom.location = Settlement.objects.get(id=1007)
        self.unit_of_kingdom.save()
        initialize_unit(self.unit_of_kingdom)

        self.kingdom = Organization.objects.get(id=101)
        self.commonwealth = Organization.objects.get(id=105)
        self.horde = Organization.objects.get(id=112)

        stance = self.kingdom.get_region_stance_to(self.horde, self.tile)
        stance.stance_type = MilitaryStance.AGGRESSIVE
        stance.save()
        stance = self.commonwealth.get_region_stance_to(self.horde, self.tile)
        stance.stance_type = MilitaryStance.AGGRESSIVE
        stance.save()
Esempio n. 8
0
    def test_battle_orders_flee(self):
        self.my_unit = WorldUnit.objects.create(
            owner_character_id=7,
            world_id=2,
            location_id=1003,
            origin_id=1003,
            name="Commonwealth lord unit",
            recruitment_type=WorldUnit.CONSCRIPTION,
            type=WorldUnit.INFANTRY,
            status=WorldUnit.FOLLOWING,
            mobilization_status_since=0,
            current_status_since=0,
            generation_size=30,
            default_battle_orders=Order.objects.create(what=Order.CHARGE)
        )

        self.barbarian_unit = WorldUnit.objects.create(
            owner_character=None,
            world_id=2,
            location_id=1003,
            origin_id=1003,
            name="Barbarian unit",
            recruitment_type=WorldUnit.CONSCRIPTION,
            type=WorldUnit.INFANTRY,
            status=WorldUnit.FOLLOWING,
            mobilization_status_since=0,
            current_status_since=0,
            generation_size=5,
            default_battle_orders=Order.objects.create(what=Order.MOVE)
        )

        initialize_unit(self.my_unit)
        initialize_unit(self.barbarian_unit)
        self.tile = Tile.objects.get(id=105)
        trigger_battles_in_tile(self.tile)
        self.battle = Battle.objects.get(id=1)

        self.assertTrue(
            WorldUnit.objects.filter(owner_character__isnull=True).exists())
        start_battle(self.battle)

        battle_unit = BattleUnit.objects.get(owner=None)
        self.assertEqual(
            battle_unit.get_order().what, Order.FLEE)

        battle_tick(self.battle)

        battle_unit = BattleUnit.objects.get(owner=None)
        self.assertEqual(
            battle_unit.get_order().what, Order.FLEE)
Esempio n. 9
0
 def test_battle_with_barbarians(self):
     world = World.objects.get(id=2)
     unit_of_kingrom_member = WorldUnit.objects.get(id=4)
     initialize_unit(unit_of_kingrom_member)
     kingdom_member = unit_of_kingrom_member.owner_character
     settlement = kingdom_member.location
     initialize_settlement(settlement)
     generate_barbarian_unit(30, settlement)
     worldwide_trigger_battles(world)
     self.assertTrue(settlement.tile.get_current_battles().exists())
     battle = settlement.tile.get_current_battles()[0]
     start_battle(battle)
     battle_tick(battle)
     generate_barbarian_unit(30, settlement)
     battle_joins(battle)
     battle_tick(battle)
    def setUp(self):
        self.client.post(
            reverse('account:login'),
            {
                'username': '******',
                'password': '******'
            },
        )
        user = auth.get_user(self.client)
        self.assertEqual(User.objects.get(id=1), user)
        self.client.get(reverse('character:activate', kwargs={'char_id': 5}),
                        follow=True)

        self.my_unit = WorldUnit.objects.get(id=1)
        self.not_my_unit = WorldUnit.objects.get(id=2)
        initialize_unit(self.my_unit)
        initialize_unit(self.not_my_unit)
Esempio n. 11
0
 def setUp(self):
     self.client.post(
         reverse('account:login'),
         {
             'username': '******',
             'password': '******'
         },
     )
     self.client.get(reverse('character:activate', kwargs={'char_id': 5}),
                     follow=True)
     initialize_unit(WorldUnit.objects.get(id=1))
     initialize_unit(WorldUnit.objects.get(id=2))
     initialize_unit(WorldUnit.objects.get(id=3))
     tile = Tile.objects.get(id=108)
     self.battle = Battle.objects.create(tile=tile, start_turn=0)
     initialize_from_conflict(self.battle,
                              [[Organization.objects.get(id=105)],
                               [Organization.objects.get(id=112)]], tile)
 def test_unit_debt_increase(self):
     unit = WorldUnit.objects.get(id=4)
     initialize_unit(unit)
     do_unit_debt_increase(unit)
     self.assertEqual(unit.get_owners_debt(), 100)