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())
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()
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)
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)
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)