Skill conditions fulfillment check
Created by: Ithirul
Is your feature request related to a problem? Please describe.
Currently all items which have a skill and a cooldown will run the cooldown no matter what the skill does, even if the skill conditions weren't met and it hasn't done anything.
Practical case: I have a skill that heals other players. I've made an item with this skill, and it has a 15 second cooldown. My skill first checks with a condition if whatever I'm looking at is a player or not. If it isn't a player, the skill won't do anything. However, since the item thinks that the skill was used, it will still apply the 15 second cooldown.
The result is that you either are perfect while aiming on a player that is moving and jumping, or you get a 15 second cooldown while not having done anything because the conditions weren't fulfilled. This situation can be translated to any other skill that relies on conditions.
Describe the solution you'd like
A solution for this could be a "check" that MMOI does internally to see whether or not the skill has fulfilled its conditions and has actually run.
However, this solution would not work for skills that run other skills with conditions. If you have a skill with a condition which runs a skill with more conditions, if the 2nd one isn't met it would still apply the cooldown.
It would also be a problem for skills that run different skills where one of them is always false (for example, a skill that has a "day skill" and a "night skill". One of them will always be false).
Describe alternatives you've considered
An alternative that would fix all of the problems above would be to have an specific "boolean variable" that MI looks for to see if the skill has been run or not.
For example, a "caster.micheck" variable that, as soon as it's true, it would mean the skill has been run and MI can activate the cooldown, but if the variable is false, that means it hasn't been activated and thus the cooldown would be 0. However I'm sure it's not as easy as I say it here, and it would also have to have an option in the mi menu to activate that "check", otherwise every skill that didn't have the variable would have a 0 sec cooldown.
One last alternative that doesn't fix my problem but would partially fix it (mostly for long cooldown items) would be items/consumables that refresh / reduce the cooldown of another item.