コード例 #1
0
ファイル: test.py プロジェクト: impulse9489/trainingCode
 def __init__(self, *args, **kwargs):
     super(TestCharacter, self).__init__(*args, **kwargs)
     self.hero = Hero("Joe")
     self.villain = Mob("Shmoe")
     self.item_hero = Item(name="Sword of Superiorness", attack_bonus=10, defense_bonus=-1)
     self.item_villain = Item(name="Shield of Losers", attack_bonus=0, defense_bonus=1)
コード例 #2
0
ファイル: test.py プロジェクト: impulse9489/trainingCode
class TestCharacter(unittest.TestCase):
    def __init__(self, *args, **kwargs):
        super(TestCharacter, self).__init__(*args, **kwargs)
        self.hero = Hero("Joe")
        self.villain = Mob("Shmoe")
        self.item_hero = Item(name="Sword of Superiorness", attack_bonus=10, defense_bonus=-1)
        self.item_villain = Item(name="Shield of Losers", attack_bonus=0, defense_bonus=1)

    def test_check_names(self):
        self.assertEqual(self.hero.name, "Joe")
        self.assertEqual(self.villain.name, "Shmoe")

    def test_blank_name_mob(self):
        my_mob = Mob()
        self.assertEqual(type(my_mob.name), str)
        self.assertGreater(len(my_mob.name), 0)

    def test_get_stats(self):
        hero_stats = [{'name': 'Joe'}, {'items': []}, {'attack_strength': 2}, {'defense': 1}, {'health': 100}, {'exp': 0}, {'isMOB': False}, {'persist': True}]
        mob_stats = [{'name': 'Shmoe'}, {'items': []}, {'attack_strength': 2}, {'defense': 1}, {'health': 100}, {'exp': 0}, {'isMOB': True}, {'persist': False}]
        self.assertGreater(len(self.hero.get_stats()),0)
        self.assertGreater(len(self.villain.get_stats()),0)
        #self.assertEqual(self.hero.get_stats(), hero_stats)
        #self.assertEqual(self.villain.get_stats(), mob_stats)

    def test_attack(self):
        self.assertEqual(self.hero.attack(self.villain), 99)
        self.assertEqual(self.hero.attack(self.villain), 98)
        self.assertEqual(self.hero.attack(self.villain), 97)

        # check if item bonuses work
        self.villain.items.append(self.item_villain)
        self.assertEqual(self.hero.attack(self.villain), 97)
        self.hero.items.append(self.item_hero)
        self.assertEqual(self.hero.attack(self.villain), 87)
        # check multiple item bonuses
        self.hero.items.append(self.item_hero)
        self.assertEqual(self.hero.attack(self.villain), 67)
        # validate hero's health hasn't changed
        self.assertEqual(self.hero.health, 100)
        # check out negative defense
        self.assertEqual(self.villain.attack(self.hero), 97)

    def test_heal(self):
        ''' A basic unit test '''
        self.hero.heal(10)
        self.assertEqual(self.hero.health, 110)

    def test_isalive(self):
        hero = Hero(name="Stu")
        self.assertTrue(hero.is_alive())
        hero.health = 0
        self.assertFalse(hero.is_alive())
        hero.health = 100
        self.assertTrue(hero.is_alive())
        hero.take_damage(102)
        self.assertFalse(hero.is_alive())

    def test_check_items(self):
        self.hero.items.append(self.item_hero)
        self.hero.items.append(self.item_hero)
        self.assertEqual(len(self.hero.items), 2)

    def test_librarian(self):
        lib = Librarian()
        my_mob = lib.create_mob()
        self.assertEqual(type(my_mob.name), str)
        self.assertGreater(len(my_mob.name), 0)

    def test_encoding(self):
        my_mob = MyEncoder().encode(Mob())
        self.assertNotEqual(my_mob, " ")
        self.assertEqual(type(json.loads(my_mob)), dict)

    def test_librarian_flask(self):
        my_mob = MyEncoder().encode(Mob())
        test = Mob(my_mob)
        my_name = json.loads(my_mob)['name']
        new_mob = Mob(name=my_name)

    def test_combat(self):
        hero = Hero()
        villain = Mob()
        lib = Librarian()
        winner = lib.combat_time(hero, villain)
        # print "WINNER WINNER", winner, villain.is_alive(), hero.is_alive(), hero.health
        self.assertTrue(hero.is_alive())
        self.assertEqual(hero, winner)

    def test_librarian_create_mob(self):
        lib = Librarian()
        mob = lib.create_mob()
        self.assertTrue(mob)
    def test_hero_creation(self):
        hero = Hero(attack_strength=100)
        self.assertTrue(hero)
コード例 #3
0
ファイル: scene_game.py プロジェクト: zurdi15/metroid_dread
 def generate_mobs(self):
     for i in range(9):
         m = Mob()
         self.sprites.add(m)
         self.mobs.add(m)
コード例 #4
0
ファイル: scene_game.py プロジェクト: zurdi15/metroid_dread
    def on_update(self):

        # ------------- DEBUG SECTION -------------
        if DEBUG:
            pass
        # ------------- DEBUG SECTION -------------

        if not self.director.pause:
            self.sprites.update()

            # - Colissions
            # -- Ground
            if self.samus.vel.y > 0:
                hits = pg.sprite.spritecollide(self.samus, self.structures,
                                               False)
                if hits:
                    self.samus.rect.bottom = hits[0].rect.top
                    self.samus.vel.y = 0

            # -- Shots
            if self.samus.ammo_type == 'normal':
                hits = pg.sprite.groupcollide(self.mobs, self.samus.shots,
                                              True, True)
                for hit in hits:
                    m = Mob()
                    self.sprites.add(m)
                    self.mobs.add(m)
            elif self.samus.ammo_type == 'plasma':
                hits = pg.sprite.groupcollide(self.mobs, self.samus.shots,
                                              True, False)
                for hit in hits:
                    m = Mob()
                    self.sprites.add(m)
                    self.mobs.add(m)

            # -- Mobs
            if not self.samus.invulnerable:
                hits = pg.sprite.spritecollide(self.samus, self.mobs, False,
                                               pg.sprite.collide_circle)
                for hit in hits:
                    self.samus.tank_hp -= hit.damage
                    if self.samus.tank_hp <= 0:
                        self.samus.tank_hp = 100
                        self.samus.tanks -= 1
                    self.samus.invulnerable = True

            # - Moving camera
            self.samus.pos.x -= self.samus.vel.x
            for struc in self.structures:
                struc.pos.x -= self.samus.vel.x
                struc.pos.y -= self.samus.vel.y
            for mob in self.mobs:
                mob.pos.x -= self.samus.vel.x
                mob.pos.y -= self.samus.vel.y

            # Checking going main menu
            if self.main_menu:
                self.main_menu = False
                try:
                    pg.mouse.set_visible(True)
                    self.director.change_scene(
                        self.director.scene_dict['scene_main_menu'])
                except Exception:
                    print 'Imposible cambiar de escena'

            # Checking samus if out of lifes to end
            if self.samus.tanks < 0:
                self.main_menu = True
コード例 #5
0
ファイル: game.py プロジェクト: vladeekkk/fall-2019-paradigms
 def __init__(self):
     self.entities: List[Entity] = [Wall(1, 2), Wall(5, 3), SuperPlayer(0, 0, '@', 100), Mob(-3, 2, 'snake', 20), Mob(-4, -2, 'cockroach', 10)]