コード例 #1
0
    def test_costume(self):
        # Create filter that forces settings
        settings = {"costume_ids": [1, 2]}
        mon_filter = Filters.MonFilter('costume_filter', settings)

        # Test events that should pass
        for c in [1, 2]:
            event = Events.MonEvent(generate_monster({"costume": c}))
            self.assertTrue(mon_filter.check_event(event))

        # Test events that should fail
        for c in [3, 4]:
            event = Events.MonEvent(generate_monster({"costume": c}))
            self.assertFalse(mon_filter.check_event(event))
コード例 #2
0
 def gen_event(self, values):
     """ Generate a generic monster, overriding with an specific values. """
     settings = {
         "encounter_id": "0",
         "spawnpoint_id": "0",
         "pokemon_id": 1,
         "pokemon_level": 1,
         "player_level": 40,
         "latitude": 37.7876146,
         "longitude": -122.390624,
         "disappear_time": 1506897031,
         "last_modified_time": 1475033386661,
         "time_until_hidden_ms": 5000,
         "seconds_until_despawn": 1754,
         "spawn_start": 2153,
         "spawn_end": 3264,
         "verified": False,
         "cp_multiplier": 0.7317000031471252,
         "form": None,
         "cp": None,
         "individual_attack": None,
         "individual_defense": None,
         "individual_stamina": None,
         "move_1": None,
         "move_2": None,
         "height": None,
         "weight": None,
         "gender": None
     }
     settings.update(values)
     return Events.MonEvent(settings)
コード例 #3
0
    def test_time_left(self):
        # Create the filters
        settings = {'min_time_left': 1000, 'max_time_left': 8000}
        mon_filter = Filters.MonFilter('time_filter', settings)

        # Test events that should pass
        for s in [2000, 4000, 6000]:
            d = (datetime.now() + timedelta(seconds=s))
            t = time.mktime(d.timetuple())
            event = Events.MonEvent(generate_monster({"disappear_time": t}))
            self.assertTrue(mon_filter.check_event(event))

        # Test events that should fail
        for s in [200, 999, 8001]:
            d = (datetime.now() + timedelta(seconds=s))
            t = time.mktime(d.timetuple())
            event = Events.MonEvent(generate_monster({"disappear_time": t}))
            self.assertFalse(mon_filter.check_event(event))
コード例 #4
0
    def test_rarity_id(self):
        # Create the filters
        settings = {"rarity": ["common", "Very Rare"]}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"rarity": 0}))
        pass2 = Events.MonEvent(generate_monster({"rarity": 3}))
        # Test passing events
        for e in [pass1, pass2]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"rarity": 1}))
        fail2 = Events.MonEvent(generate_monster({"rarity": 2}))
        fail3 = Events.MonEvent(generate_monster({"rarity": 4}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
コード例 #5
0
    def test_distance(self):
        mon_event = Events.MonEvent(generate_monster({}))
        settings = {'min_dist': '5', 'max_dist': '2000'}
        mon_filter = Filters.MonFilter('distance_filter', settings)
        for i in [1000, 5, 2000]:
            mon_event.distance = i
            self.assertTrue(mon_filter.check_event(mon_event))

        settings2 = {'min_dist': '5', 'max_dist': 500}
        mon_filter2 = Filters.MonFilter('distance_filter_2', settings2)
        for i in [4, 501, 9999]:
            mon_event.distance = i
            self.assertFalse(mon_filter2.check_event(mon_event))
コード例 #6
0
    def test_lvl(self):
        # Create the filters
        settings = {"min_lvl": 5, "max_lvl": 10}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"pokemon_level": 5}))
        pass2 = Events.MonEvent(generate_monster({"pokemon_level": 7}))
        pass3 = Events.MonEvent(generate_monster({"pokemon_level": 10}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"pokemon_id": 4}))
        fail2 = Events.MonEvent(generate_monster({"pokemon_id": 11}))
        fail3 = Events.MonEvent(generate_monster({"pokemon_id": 100}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
コード例 #7
0
    def test_monsters_exclude(self):
        # Create the filters
        settings = {"monsters_exclude": [4, "5", "Charizard"]}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"pokemon_id": 1}))
        pass2 = Events.MonEvent(generate_monster({"pokemon_id": 2}))
        pass3 = Events.MonEvent(generate_monster({"pokemon_id": 3}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"pokemon_id": 4}))
        fail2 = Events.MonEvent(generate_monster({"pokemon_id": 5}))
        fail3 = Events.MonEvent(generate_monster({"pokemon_id": 6}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
コード例 #8
0
    def test_monster_id(self):
        # Create the filters
        settings = {"monsters": [1, "2", "Venusaur"]}
        mon_filter = Filters.MonFilter('filter1', settings)

        # Generate events that should pass
        pass1 = Events.MonEvent(generate_monster({"pokemon_id": 1}))
        pass2 = Events.MonEvent(generate_monster({"pokemon_id": 2}))
        pass3 = Events.MonEvent(generate_monster({"pokemon_id": 3}))
        # Test passing events
        for e in [pass1, pass2, pass3]:
            self.assertTrue(mon_filter.check_event(e))

        # Generate events that should fail
        fail1 = Events.MonEvent(generate_monster({"pokemon_id": 5}))
        fail2 = Events.MonEvent(generate_monster({"pokemon_id": 102}))
        fail3 = Events.MonEvent(generate_monster({"pokemon_id": 30}))

        # Test failing events
        for e in [fail1, fail2, fail3]:
            self.assertFalse(mon_filter.check_event(e))
コード例 #9
0
def create_event(items_to_change):
    return Events.MonEvent(generate_monster(items_to_change))