def test_unit_pos_swap_almost(self):
        unit1 = WorldUnit.objects.get(id=1)
        unit3 = WorldUnit.objects.get(id=3)

        start_battle(self.battle)
        battle_unit1 = BattleUnit.objects.get(world_unit=unit1)
        battle_unit3 = BattleUnit.objects.get(world_unit=unit3)

        order3 = Order.objects.create(
            what=Order.MOVE,
            target_location_x=battle_unit1.starting_x_pos,
            target_location_z=battle_unit1.starting_z_pos + 1)
        battle_unit3.world_unit.default_battle_orders = order3
        battle_unit3.world_unit.save()

        order1 = Order.objects.create(
            what=Order.MOVE,
            target_location_x=battle_unit3.starting_x_pos,
            target_location_z=battle_unit3.starting_z_pos - 1)
        battle_unit1.world_unit.default_battle_orders = order1
        battle_unit1.world_unit.save()

        for i in range(6):
            self.assertFalse(
                self.battle.get_latest_turn().test_contubernia_superposition())
            battle_tick(self.battle)

        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
    def test_unit_move(self):
        unit = WorldUnit.objects.get(id=1)
        start_battle(self.battle)
        battle_unit = BattleUnit.objects.get(world_unit=unit)
        order = Order.objects.create(
            what=Order.MOVE,
            target_location_x=battle_unit.starting_x_pos,
            target_location_z=battle_unit.starting_z_pos - 1)
        unit.default_battle_orders = order
        unit.save()

        battle_tick(self.battle)

        self.battle.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        buit = BattleUnitInTurn.objects.get(
            battle_turn=self.battle.get_latest_turn(), battle_unit=battle_unit)
        self.assertEqual(buit.x_pos, battle_unit.starting_x_pos)
        self.assertEqual(buit.z_pos, battle_unit.starting_z_pos - 1)
        order.refresh_from_db()
        self.assertTrue(order.done)

        battle_tick(self.battle)

        self.battle.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        buit = BattleUnitInTurn.objects.get(
            battle_turn=self.battle.get_latest_turn(), battle_unit=battle_unit)
        self.assertEqual(buit.x_pos, battle_unit.starting_x_pos)
        self.assertEqual(buit.z_pos, battle_unit.starting_z_pos - 1)
        order.refresh_from_db()
        self.assertTrue(order.done)
    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)
Example #4
0
    def test_manpower(self):
        start_battle(self.battle)

        side0 = self.battle.battleside_set.get(z=False)
        self.assertEqual(side0.get_manpower(), 30)
        self.assertEqual(side0.get_proportional_strength(), 1 / 3)
        side1 = self.battle.battleside_set.get(z=True)
        self.assertEqual(side1.get_manpower(), 90)
        self.assertEqual(side1.get_proportional_strength(), 3)
Example #5
0
    def test_start_units_in_flank(self):

        unit1 = WorldUnit.objects.get(id=1)
        unit1.battle_side_pos = -4
        unit1.save()
        unit2 = WorldUnit.objects.get(id=2)
        unit2.battle_side_pos = 5
        unit2.save()
        unit3 = WorldUnit.objects.get(id=3)
        unit3.battle_side_pos = -5
        unit3.save()

        start_battle(self.battle)
    def test_move_flee(self):
        unit3 = WorldUnit.objects.get(id=3)
        order3 = Order.objects.create(what=Order.FLEE)
        unit3.default_battle_orders = order3
        unit3.save()
        start_battle(self.battle)
        battle_unit3 = BattleUnit.objects.get(world_unit=unit3)

        battle_tick(self.battle)

        unit3_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit3)
Example #7
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)
Example #8
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 test_move_charge(self):
        unit3 = WorldUnit.objects.get(id=3)
        order3 = Order.objects.create(what=Order.CHARGE)
        unit3.default_battle_orders = order3
        unit3.default_battle_orders.save()
        start_battle(self.battle)
        battle_unit3 = BattleUnit.objects.get(world_unit=unit3)

        battle_tick(self.battle)

        unit3_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit3)

        for bcuit in unit3_contubernia:
            self.assertEqual(bcuit.z_pos,
                             bcuit.battle_contubernium.starting_z_pos - 1)
Example #10
0
    def test_start_battle(self):
        start_battle(self.battle)

        self.assertTrue(BattleContubernium.objects.exists())
        self.assertEqual(BattleContubernium.objects.count(), 16)
        self.assertTrue(BattleSoldier.objects.exists())
        self.assertEqual(BattleSoldier.objects.count(), 120)

        self.assertTrue(BattleContuberniumInTurn.objects.exists())
        self.assertEqual(BattleContuberniumInTurn.objects.count(), 16)
        self.assertTrue(BattleSoldierInTurn.objects.exists())
        self.assertEqual(BattleSoldierInTurn.objects.count(), 120)

        for npc in NPC.objects.all():
            self.assertTrue(
                BattleSoldier.objects.filter(world_npc=npc).exists())

        response = self.client.get(self.battle.get_absolute_url())
        self.assertEqual(response.status_code, 200)

        response = self.client.get(
            reverse('battle:info', kwargs={'battle_id': self.battle.id}))
        self.assertEqual(response.status_code, 200)

        response = self.client.get(
            reverse('battle:battlefield_iframe',
                    kwargs={'battle_id': self.battle.id}))
        self.assertEqual(response.status_code, 200)

        self.assertEqual(
            BattleUnitInTurn.objects.get(
                battle_turn=self.battle.get_latest_turn(),
                battle_unit__world_unit__id=2).order.what, Order.CHARGE)
        self.assertEqual(
            BattleUnitInTurn.objects.get(
                battle_turn=self.battle.get_latest_turn(),
                battle_unit__world_unit__id=1).order.what,
            Order.ADVANCE_IN_FORMATION)
    def test_unit_superposition(self):
        unit1 = WorldUnit.objects.get(id=1)
        unit3 = WorldUnit.objects.get(id=3)

        start_battle(self.battle)
        battle_unit1 = BattleUnit.objects.get(world_unit=unit1)
        battle_unit3 = BattleUnit.objects.get(world_unit=unit3)
        order = Order.objects.create(
            what=Order.MOVE,
            target_location_x=battle_unit1.starting_x_pos,
            target_location_z=battle_unit1.starting_z_pos)
        battle_unit3.world_unit.default_battle_orders = order
        battle_unit3.world_unit.save()

        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        battle_tick(self.battle)
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        battle_tick(self.battle)
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        battle_tick(self.battle)
    def test_unit_formation_follow(self):
        start_battle(self.battle)
        unit = WorldUnit.objects.get(id=1)
        battle_unit = BattleUnit.objects.get(world_unit=unit)

        battle_tick(self.battle)

        self.battle.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        buit = BattleUnitInTurn.objects.get(
            battle_turn=self.battle.get_latest_turn(), battle_unit=battle_unit)
        self.assertEqual(buit.x_pos, battle_unit.starting_x_pos)
        self.assertEqual(buit.z_pos, battle_unit.starting_z_pos - 1)

        battle_tick(self.battle)

        self.battle.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        buit = BattleUnitInTurn.objects.get(
            battle_turn=self.battle.get_latest_turn(), battle_unit=battle_unit)
        self.assertEqual(buit.x_pos, battle_unit.starting_x_pos)
        self.assertEqual(buit.z_pos, battle_unit.starting_z_pos - 2)
Example #13
0
 def test_orders_view_when_started(self):
     start_battle(self.battle)
     response = self.client.get(reverse(
         'battle:set_orders', kwargs={'battle_id': self.battle.id}),
                                follow=True)
     self.assertEqual(response.status_code, 200)
Example #14
0
 def test_info_view_when_started(self):
     start_battle(self.battle)
     response = self.client.get(
         reverse('battle:info', kwargs={'battle_id': self.battle.id}))
     self.assertEqual(response.status_code, 200)
Example #15
0
 def battle_starts(self):
     for battle in Battle.objects.filter(tile__world=self.world,
                                         current=True,
                                         started=False):
         start_battle(battle)
Example #16
0
    def test_battle_create_from_units_with_allies(self):
        world = World.objects.get(id=2)
        worldwide_trigger_battles(world)

        self.assertTrue(Battle.objects.exists())

        self.battle = Battle.objects.get(id=1)

        self.assertEqual(self.battle.battleside_set.count(), 2)

        self.assertTrue(
            BattleOrganization.objects.filter(
                side__battle=self.battle, organization=self.kingdom).exists())
        self.assertTrue(
            BattleOrganization.objects.filter(
                side__battle=self.battle, organization=self.horde).exists())
        self.assertTrue(
            BattleOrganization.objects.filter(
                side__battle=self.battle,
                organization=self.commonwealth).exists())
        self.assertEqual(BattleOrganization.objects.count(), 3)

        self.assertTrue(
            BattleOrganization.objects.get(organization=self.kingdom).side.z !=
            BattleOrganization.objects.get(organization=self.horde).side.z)
        self.assertTrue(
            BattleOrganization.objects.get(
                organization=self.commonwealth).side.z !=
            BattleOrganization.objects.get(organization=self.horde).side.z)

        self.assertTrue(BattleCharacter.objects.exists())
        self.assertTrue(
            BattleCharacter.objects.filter(
                battle_organization__organization=self.kingdom, ).exists())
        self.assertTrue(
            BattleCharacter.objects.filter(
                battle_organization__organization=self.horde, ).exists())
        self.assertTrue(
            BattleCharacter.objects.filter(
                battle_organization__organization=self.commonwealth,
            ).exists())
        self.assertEqual(BattleCharacter.objects.count(), 3)

        self.assertTrue(BattleUnit.objects.exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_warrior,
                                      starting_manpower=30).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_commonwealth,
                                      starting_manpower=30).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_warrior2,
                                      starting_manpower=60).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_kingdom,
                                      starting_manpower=100).exists())
        self.assertEqual(BattleUnit.objects.count(), 4)

        response = self.client.get(self.battle.get_absolute_url(), follow=True)
        self.assertEqual(response.status_code, 200)

        start_battle(self.battle)
        battle_tick(self.battle)
Example #17
0
def worldwide_battle_starts(world: World):
    for battle in Battle.objects.filter(
            tile__world=world, current=True, started=False
    ):
        start_battle(battle)
    def test_move_while_unit_blocks(self):
        unit1 = WorldUnit.objects.get(id=1)
        unit3 = WorldUnit.objects.get(id=3)

        order3 = Order.objects.create(what=Order.STAND)
        unit3.battle_line = 2
        unit3.default_battle_orders = order3
        unit3.save()

        start_battle(self.battle)
        battle_unit1 = BattleUnit.objects.get(world_unit=unit1)
        battle_unit3 = BattleUnit.objects.get(world_unit=unit3)

        battle_tick(self.battle)

        unit1_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit1)

        for bcuit in unit1_contubernia:
            self.assertEqual(bcuit.z_pos,
                             bcuit.battle_contubernium.starting_z_pos - 1)

        battle_tick(self.battle)

        unit1_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit1)

        for bcuit in unit1_contubernia:
            self.assertEqual(bcuit.z_pos,
                             bcuit.battle_contubernium.starting_z_pos - 2)

        battle_tick(self.battle)

        unit1_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit1)

        for bcuit in unit1_contubernia:
            self.assertEqual(bcuit.z_pos,
                             bcuit.battle_contubernium.starting_z_pos - 2)

        battle_tick(self.battle)

        unit1_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit1)

        # DONT TEST HERE BECAUSE OF MIXED STATE

        battle_tick(self.battle)

        unit1_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit1)

        for bcuit in unit1_contubernia:
            self.assertEqual(bcuit.z_pos,
                             bcuit.battle_contubernium.starting_z_pos - 3)

        battle_tick(self.battle)

        unit1_contubernia = BattleContuberniumInTurn.objects.filter(
            battle_turn=self.battle.get_latest_turn(),
            battle_contubernium__battle_unit=battle_unit1)

        for bcuit in unit1_contubernia:
            self.assertEqual(bcuit.z_pos,
                             bcuit.battle_contubernium.starting_z_pos - 4)
    def test_move_avoiding_wall_obstacle(self):
        unit1 = WorldUnit.objects.get(id=1)
        unit3 = WorldUnit.objects.get(id=3)

        start_battle(self.battle)
        battle_unit1 = BattleUnit.objects.get(world_unit=unit1)
        battle_unit3 = BattleUnit.objects.get(world_unit=unit3)

        obstacles = BattleContuberniumInTurn.objects.filter(
            battle_contubernium__battle_unit=battle_unit1)
        contub1 = obstacles[0]
        contub1.x_pos = 100
        contub1.z_pos = 99
        contub1.save()
        contub1 = obstacles[1]
        contub1.x_pos = 100
        contub1.z_pos = 101
        contub1.save()
        contub1 = obstacles[2]
        contub1.x_pos = 100
        contub1.z_pos = 100
        contub1.save()

        contub3 = BattleContuberniumInTurn.objects.filter(
            battle_contubernium__battle_unit=battle_unit3)[0]
        contub3.x_pos = 99
        contub3.z_pos = 100
        contub3.save()

        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())

        self.assertFalse(contub1.desires_pos)
        self.assertEqual(contub1.x_pos, 100)
        self.assertEqual(contub1.z_pos, 100)
        self.assertFalse(contub1.moved_this_turn)

        self.assertFalse(contub3.desires_pos)
        self.assertEqual(contub3.x_pos, 99)
        self.assertEqual(contub3.z_pos, 100)
        self.assertFalse(contub3.moved_this_turn)

        contub3_movement_target = Coordinates(x=101, z=100)

        def target_distance_function(coords):
            return euclidean_distance(coords, contub3_movement_target)

        optimistic_move_desire_formulation(contub3, target_distance_function)

        contub1.refresh_from_db()
        self.assertFalse(contub1.desires_pos)
        self.assertEqual(contub1.x_pos, 100)
        self.assertEqual(contub1.z_pos, 100)
        self.assertFalse(contub1.moved_this_turn)

        contub3.refresh_from_db()
        self.assertTrue(contub3.desires_pos)
        self.assertEqual(contub3.desired_x_pos, 100)
        self.assertEqual(contub3.desired_z_pos, 100)
        self.assertEqual(contub3.x_pos, 99)
        self.assertEqual(contub3.z_pos, 100)
        self.assertFalse(contub3.moved_this_turn)

        optimistic_move_desire_resolving(self.battle)

        contub1.refresh_from_db()
        self.assertFalse(contub1.desires_pos)
        self.assertEqual(contub1.x_pos, 100)
        self.assertEqual(contub1.z_pos, 100)
        self.assertFalse(contub1.moved_this_turn)

        contub3.refresh_from_db()
        self.assertFalse(contub3.desires_pos)
        self.assertEqual(contub3.x_pos, 99)
        self.assertEqual(contub3.z_pos, 100)
        self.assertFalse(contub3.moved_this_turn)
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())

        safe_move(contub3, target_distance_function)
        contub3.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        safe_move(contub3, target_distance_function)
        contub3.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        safe_move(contub3, target_distance_function)
        contub3.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())
        safe_move(contub3, target_distance_function)
        contub3.refresh_from_db()
        self.assertFalse(
            self.battle.get_latest_turn().test_contubernia_superposition())

        contub3.refresh_from_db()
        self.assertFalse(contub3.desires_pos)
        self.assertEqual(contub3.x_pos, 101)
        self.assertEqual(contub3.z_pos, 100)
        self.assertTrue(contub3.moved_this_turn)
Example #20
0
    def test_battle_create_from_units_with_allies_joining_during_battle2(self):
        self.unit_of_commonwealth.location_id = 1001
        self.unit_of_commonwealth.save()

        turn_processor = TurnProcessor(World.objects.get(id=2))
        turn_processor.trigger_battles()

        self.assertTrue(Battle.objects.exists())

        self.battle = Battle.objects.get(id=1)

        self.assertEqual(self.battle.battleside_set.count(), 2)

        self.assertTrue(
            BattleOrganization.objects.filter(
                side__battle=self.battle, organization=self.kingdom).exists())
        self.assertTrue(
            BattleOrganization.objects.filter(
                side__battle=self.battle, organization=self.horde).exists())
        self.assertFalse(
            BattleOrganization.objects.filter(
                side__battle=self.battle,
                organization=self.commonwealth).exists())
        self.assertEqual(BattleOrganization.objects.count(), 2)

        self.assertEqual(
            self.unit_of_commonwealth.owner_character.
            get_battle_participating_in(), None)

        self.assertTrue(
            BattleOrganization.objects.get(organization=self.kingdom).side.z !=
            BattleOrganization.objects.get(organization=self.horde).side.z)

        self.assertTrue(BattleCharacter.objects.exists())
        self.assertTrue(
            BattleCharacter.objects.filter(
                battle_organization__organization=self.kingdom, ).exists())
        self.assertTrue(
            BattleCharacter.objects.filter(
                battle_organization__organization=self.horde, ).exists())
        self.assertFalse(
            BattleCharacter.objects.filter(
                battle_organization__organization=self.commonwealth,
            ).exists())
        self.assertEqual(BattleCharacter.objects.count(), 2)

        self.assertTrue(BattleUnit.objects.exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_warrior,
                                      starting_manpower=30).exists())
        self.assertFalse(
            BattleUnit.objects.filter(world_unit=self.unit_of_commonwealth,
                                      starting_manpower=30).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_warrior2,
                                      starting_manpower=60).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_kingdom,
                                      starting_manpower=100).exists())
        self.assertEqual(BattleUnit.objects.count(), 3)

        response = self.client.get(self.battle.get_absolute_url(), follow=True)
        self.assertEqual(response.status_code, 200)

        start_battle(self.battle)
        battle_tick(self.battle)

        self.unit_of_commonwealth.location_id = 1007
        self.unit_of_commonwealth.save()

        turn_processor.battle_joins()

        self.assertTrue(
            BattleOrganization.objects.filter(
                side__battle=self.battle,
                organization=self.commonwealth).exists())
        self.assertEqual(BattleOrganization.objects.count(), 3)

        self.assertTrue(
            BattleOrganization.objects.get(
                organization=self.commonwealth).side.z !=
            BattleOrganization.objects.get(organization=self.horde).side.z)

        self.assertTrue(
            BattleCharacter.objects.filter(
                battle_organization__organization=self.commonwealth,
            ).exists())
        self.assertEqual(BattleCharacter.objects.count(), 3)

        self.assertTrue(BattleUnit.objects.exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_warrior,
                                      starting_manpower=30).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_commonwealth,
                                      starting_manpower=30).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_warrior2,
                                      starting_manpower=60).exists())
        self.assertTrue(
            BattleUnit.objects.filter(world_unit=self.unit_of_kingdom,
                                      starting_manpower=100).exists())
        self.assertEqual(BattleUnit.objects.count(), 4)

        self.assertEqual(
            self.unit_of_commonwealth.owner_character.
            get_battle_participating_in(), self.battle)

        battle_tick(self.battle)
Example #21
0
def start(modeladmin, request, queryset):
    for battle in queryset.all():
        start_battle(battle)