def clean_abilities(self): abilities_ids = self.cleaned_data['abilities'] if HIT.get_id() not in abilities_ids: abilities_ids.append(HIT.get_id()) if not abilities_ids: raise ValidationError('не указаны способности монстра') for ability_id in abilities_ids: if ability_id not in ABILITY_CHOICES_DICT: raise ValidationError('неверный идентификатор способности монстра') return frozenset(abilities_ids)
def clean_abilities(self): abilities_ids = self.cleaned_data['abilities'] if HIT.get_id() not in abilities_ids: abilities_ids.append(HIT.get_id()) if not abilities_ids: raise ValidationError('не указаны способности монстра') for ability_id in abilities_ids: if ability_id not in ABILITY_CHOICES_DICT: raise ValidationError( 'неверный идентификатор способности монстра') return frozenset(abilities_ids)
def test_mob_actor(self): mob = mobs_storage.get_random_mob(self.hero) mob.health = 10 mob.abilities.add(RUN_UP_PUSH.get_id()) actor = battle.Actor(mob, BattleContext()) self.assertEqual(mob.initiative, actor.initiative) self.assertEqual(mob.name, actor.name) self.assertEqual(mob.utg_name, actor.utg_name) self.assertEqual(mob.basic_damage, actor.basic_damage) self.assertEqual(mob.health, actor.health) self.assertEqual(mob.max_health, actor.max_health) self.assertEqual(actor.change_health(-5), -5) self.assertEqual(actor.health, 5) self.assertEqual(actor.change_health(-50), -5) self.assertEqual(actor.health, 0) self.assertEqual(actor.change_health(actor.max_health + 50), actor.max_health) self.assertEqual(actor.health, actor.max_health) hit_selected = False run_up_push_selected = False vampire_strike_selected = False for i in range(100): ability = actor.choose_ability() if ability.get_id() == HIT.get_id(): hit_selected = True elif ability.get_id() == RUN_UP_PUSH.get_id(): run_up_push_selected = True elif ability.get_id() == VAMPIRE_STRIKE.get_id(): vampire_strike_selected = True self.assertTrue(hit_selected) self.assertTrue(run_up_push_selected) self.assertTrue(vampire_strike_selected) self.storage._test_save()
def test_mob_actor(self): mob = mobs_storage.get_random_mob(self.hero) mob.health = 10 mob.abilities.add(RUN_UP_PUSH.get_id()) actor = battle.Actor(mob, BattleContext()) self.assertEqual(mob.initiative, actor.initiative) self.assertEqual(mob.name, actor.name) self.assertEqual(mob.utg_name, actor.utg_name) self.assertEqual(mob.basic_damage, actor.basic_damage) self.assertEqual(mob.health, actor.health) self.assertEqual(mob.max_health, actor.max_health) self.assertEqual(actor.change_health(-5), -5) self.assertEqual(actor.health, 5) self.assertEqual(actor.change_health(-50), -5) self.assertEqual(actor.health, 0) self.assertEqual(actor.change_health(actor.max_health+50), actor.max_health) self.assertEqual(actor.health, actor.max_health) hit_selected = False run_up_push_selected = False vampire_strike_selected = False for i in xrange(100): ability = actor.choose_ability() if ability.get_id() == HIT.get_id(): hit_selected = True elif ability.get_id() == RUN_UP_PUSH.get_id(): run_up_push_selected = True elif ability.get_id() == VAMPIRE_STRIKE.get_id(): vampire_strike_selected = True self.assertTrue(hit_selected) self.assertTrue(run_up_push_selected) self.assertTrue(vampire_strike_selected) self.storage._test_save()