SketchySolid
Member
The CLI commands `use`, `drink`, `equip`, `maximize`, and others, all use fuzzy matching for items when an exact match of an item name is not provided. If multiple items match the string that you submit, mafia chooses 1 of them for you. This can result in unexpected behaviour, especially when new content is added (like the new replica IotMs in LoL). Also, if you type something like `use closed-circuit` into the GCLI, mafia sometimes thinks you want to purchase and unpackage a new closed-circuit phone system instead of use the bound one you have in your inventory.
Typing the exact item name is also not always an option when special characters are used. If I want to specify to equip kramco in a maximize string using an exact match, I need to use `™`, which contains a semicolon which breaks the line and breaks maximizer. The current workaround is to use pilcrows and an itemid, which is a very bad user experience for a variety of reasons.
I understand that the current matching strategy is:
1. Check for exact match of any item name
2. Check for fuzzy match of any item name
I propose changing the way item-string matching to the following:
1. Check for exact match of any item name
2. Check for fuzzy match against items in players' inventories (and closets, etc. if appropriate settings are enabled)
3. Check for fuzzy match of any item name
I believe this would solve most/all issues with replica IotM item-name confusion, and it would more closely match what native KoL does, and what most players probably expect when they type an incomplete item name.
It is possible that some existing scripts rely on the current behaviour, but those scripts made dangerous decisions when they were written to use fuzzy matching in the first place, and future game updates are likely to break them down the line.
Typing the exact item name is also not always an option when special characters are used. If I want to specify to equip kramco in a maximize string using an exact match, I need to use `™`, which contains a semicolon which breaks the line and breaks maximizer. The current workaround is to use pilcrows and an itemid, which is a very bad user experience for a variety of reasons.
I understand that the current matching strategy is:
1. Check for exact match of any item name
2. Check for fuzzy match of any item name
I propose changing the way item-string matching to the following:
1. Check for exact match of any item name
2. Check for fuzzy match against items in players' inventories (and closets, etc. if appropriate settings are enabled)
3. Check for fuzzy match of any item name
I believe this would solve most/all issues with replica IotM item-name confusion, and it would more closely match what native KoL does, and what most players probably expect when they type an incomplete item name.
It is possible that some existing scripts rely on the current behaviour, but those scripts made dangerous decisions when they were written to use fuzzy matching in the first place, and future game updates are likely to break them down the line.