Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Filter cosmetic variants of monsters #509

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

coopermor
Copy link
Contributor

One of the annoyances I have is the large amount of cosmetic variants that clutter the monster search. Typing in "Zombie Pirate" gives six cosmetic braindeath island monsters and 26 cosmetic harmony island monsters.

I wrote a function to filter out mobs with the same name, different version, and same stats. I'm marking this as a draft to get some feedback. There are some things removed like four different Abyssal Sire variants which all have the same statistics. I wanted to get some feedback on how this should be implemented.

  • Should we have a whitelist of filtered monsters eg. Baby Blue Dragon, Zombie pirate (Braindeath Island), Zombie pirate (Harmony Island)?
  • Should we have automatic stat filtering and blacklist some monster names and versions?
  • Should cosmetic variants not be filtered out?
  • Some other idea?

@coopermor
Copy link
Contributor Author

Here is the list of mobs currently filtered by purely matching monster properties and the number of duplicates not added.

Skipping Abyssal Sire (2)
Skipping Abyssal demon (2)
Skipping Alchemical Hydra (1)
Skipping Ancient Guardian (1)
Skipping Armoured zombie (1)
Skipping Assassin (While Guthix Sleeps) (1)
Skipping Baby blue dragon (3)
Skipping Baby green dragon (2)
Skipping Baby impling (1)
Skipping Baby red dragon (2)
Skipping Baby tanglefoot (1)
Skipping Barbarian (9)
Skipping Basilisk (1)
Skipping Battle mage (2)
Skipping Berry (1)
Skipping Big Wolf (1)
Skipping Billy Goat (1)
Skipping Black Guard Berserker (2)
Skipping Black Knight (3)
Skipping Blessed giant rat (1)
Skipping Blessed spider (1)
Skipping Bloodthirsty Shadow Wyrm (1)
Skipping Blue dragon (10)
Skipping Broodoo victim (2)
Skipping Brutal blue dragon (1)
Skipping Bunny (1)
Skipping Bush snake (1)
Skipping Calvar'ion (1)
Skipping Cave crawler (5)
Skipping Cave goblin (monster) (3)
Skipping Cave goblin miner (7)
Skipping Cave kraken (1)
Skipping Chasm Crawler (1)
Skipping Chicken (2)
Skipping Cockatrice (1)
Skipping Cow calf (2)
Skipping Cow (4)
Skipping Crystal impling (16)
Skipping Cultist (5)
Skipping Cyclops (God Wars Dungeon) (1)
Skipping Desert Lizard (2)
Skipping Desert Wolf (2)
Skipping Duck (1)
Skipping Duke Sucellus (2)
Skipping Dungeon rat (1)
Skipping Earth elemental (1)
Skipping Elf Archer (1)
Skipping Elf Warrior (1)
Skipping Elite Black Knight (1)
Skipping Elite Dark Mage (1)
Skipping Elite Dark Ranger (1)
Skipping Elite Dark Warrior (1)
Skipping Elite Khazard Guard (3)
Skipping Emissary Acolyte (5)
Skipping Emissary Ascended (6)
Skipping Emissary Chosen (5)
Skipping Emissary Conjurer (1)
Skipping Evil Creature (1)
Skipping Farmer (6)
Skipping Forester (Woodcutting Guild) (1)
Skipping Forgotten Soul (1)
Skipping Frost Crab (1)
Skipping Galvek (3)
Skipping Gangster (1)
Skipping Gargoyle (1)
Skipping Ghost (Melzar's Maze) (4)
Skipping Giant bat (1)
Skipping Giant rat (Tutorial Island) (2)
Skipping Giant skeleton (Shadow Dungeon) (1)
Skipping Gnome child (2)
Skipping Gnome woman (1)
Skipping Goat (1)
Skipping Goblin (Goblin Village) (1)
Skipping Greater Nechryael (1)
Skipping Guard (Burthorpe) (1)
Skipping Guard (Deadman Mode) (15)
Skipping Guard (Desert Mining Camp) (4)
Skipping Guard (Port Sarim Jail) (4)
Skipping Guard (Prifddinas) (6)
Skipping Guard (Varlamore) (9)
Skipping Guard dog (1)
Skipping Guard (3)
Skipping Hazeel Cultist (1)
Skipping Head (Temple Trekking) (1)
Skipping Hero (2)
Skipping Hill Giant (Giants' Plateau) (2)
Skipping Hill Giant (Varlamore) (2)
Skipping Hill Giant (5)
Skipping Hobgoblin (4)
Skipping Ice giant (6)
Skipping Ice spider (2)
Skipping Ice troll female (1)
Skipping Ice troll male (1)
Skipping Ice warrior (3)
Skipping Iorwerth Archer (1)
Skipping Iorwerth Warrior (1)
Skipping Ithoi the Navigator (1)
Skipping Jail guard (3)
Skipping Jelly (10)
Skipping Jungle horror (4)
Skipping K'ril Tsutsaroth (Deadman) (1)
Skipping Kalphite Guardian (2)
Skipping Kalphite Soldier (1)
Skipping Ket-Zek (1)
Skipping Khazard trooper (1)
Skipping Killerwatt (1)
Skipping King Sand Crab (1)
Skipping Knight of Ardougne (1)
Skipping Knight of Varlamore (5)
Skipping Kurask (1)
Skipping Lizardman brute (1)
Skipping Lucky impling (1)
Skipping Magic axe (1)
Skipping Malevolent Mage (Deadman) (1)
Skipping Man (level 4) (1)
Skipping Man (9)
Skipping Market Guard (Draynor) (1)
Skipping Me (2)
Skipping Menaphite Thug (1)
Skipping Mercenary axeman (1)
Skipping Mercenary (3)
Skipping Minotaur (Fortis Colosseum) (1)
Skipping Monkey (monster) (1)
Skipping Monkey Archer (1)
Skipping Monkey Guard (1)
Skipping Moss giant (1)
Skipping Mouse (1)
Skipping Nechryael (1)
Skipping Ogre shaman (5)
Skipping Ogress Warrior (1)
Skipping Paladin (7)
Skipping Penance Runner (8)
Skipping Phantom Hand (1)
Skipping Pheasant (3)
Skipping Possessed pickaxe (1)
Skipping Pyrelord (1)
Skipping Ram (4)
Skipping Rat (1)
Skipping Red dragon (4)
Skipping Rock Crab (1)
Skipping Rock lobster (1)
Skipping Rockslug (1)
Skipping Sand Crab (1)
Skipping Scarab Swarm (1)
Skipping Shadow Wyrm (1)
Skipping Skeletal Wyvern (3)
Skipping Skeleton (Barrows) (3)
Skipping Skeleton (Forthos Ruin) (4)
Skipping Skeleton (Lucien's camp) (3)
Skipping Skeleton (Melzar's Maze) (2)
Skipping Skeleton (Stronghold of Security) (2)
Skipping Skeleton (Wilderness Agility Course) (6)
Skipping Skraeling (Etceteria) (1)
Skipping Skraeling (Miscellania) (1)
Skipping Sleepwalker (monster) (5)
Skipping Small Lizard (1)
Skipping Sorebones (1)
Skipping Spinolyp (1)
Skipping Steel dragon (1)
Skipping Strangled (3)
Skipping Suqah (6)
Skipping Swamp Crab (2)
Skipping Target (1)
Skipping Tentacle (Temple Trekking) (1)
Skipping Thief (Varlamore) (5)
Skipping Tok-Xil (1)
Skipping Tok-Xil (1)
Skipping Tormented Demon (2)
Skipping Tormented Demon (2)
Skipping Tribesman (2)
Skipping Tribeswoman (1)
Skipping Tribeswoman (1)
Skipping Troll general (1)
Skipping Troll general (1)
Skipping Twig (1)
Skipping TzHaar-Xil (1)
Skipping Undead Zealot (1)
Skipping Vampyre Juvenile (1)
Skipping Void Knight (Pest Control) (3)
Skipping Vulture (1)
Skipping Vyrewatch Sentinel (7)
Skipping Wall beast (1)
Skipping Warrior (Thieving) (5)
Skipping Warrior of Murahs (2)
Skipping Waterfiend (1)
Skipping Werewolf (19)
Skipping White Knight (1)
Skipping Wild dog (1)
Skipping Witch (monster) (1)
Skipping Woman (4)
Skipping Wyrm (1)
Skipping Wyrmling (1)
Skipping Yt-MejKot (1)
Skipping Zombie (Entrana Dungeon) (4)
Skipping Zombie pirate (Braindeath Island) (5)
Skipping Zombie pirate (Harmony Island) (25)
Skipping Zombie rat (1)
Skipping Zombie swab (5)

It also seems pruning should add two more conditions for some deadman monsters sneaking in

# Prune...
if (
        # ...monsters that do not have any hitpoints
        monster["skills"]["hp"] == 0
        # ...monsters that don't have an ID
        or monster["id"] is None
        # ...monsters that are historical
        or "(historical)" in str.lower(monster["name"])
        # ...monsters from the PvM arena
        or "(pvm arena)" in str.lower(monster["name"])
        # ...monsters from DMM Apocalypse
        or "(deadman: apocalypse)" in str.lower(monster["name"])
        or "(deadman)" in str.lower(monster["name"])
        or "(deadman mode)" in str.lower(monster["name"])
    ):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant