Given that bosses follow a set pattern, I believe that certain bosses should have a learning AI in that they take into account skill damage received and then select an action to perform based on the actions of the attackers of highest threat.
This encourages threat cycling to keep bosses from learning a character too much and keeps battles dynamic in that you never know what a boss might do next now that they know your skills.
Just an idea but not sure how this would work into an mmorpg which has tons of concurrent players and processing loads.
In a MMORPG every players expects to have the same experience as every other player so nothing a player does affects the PVE world in a permanent manner. There are few exceptions to this and they are limited to world events and even those are the same and only change after the event is over.
The first players to engage a mob will succeed against it but as it ‘learns’ the battles will become tougher then finally cannot be won by the players at all.
Edit: I should point out that a well programmed learning algorithm would ensure that healers are the primary target to be taken out quickly and if possible by range. The ability to stun a tank and take out the ‘squishy’ characters would become a paramount strategy.
There are many ways to code for learning AI, the type I mentioned also has many methods for implementation.
An intensive method would be that a mob indefinitely retains all knowledge of a player’s actions which can bloat mob data for the server causing lag over time.
A next method would be to have temporary retention in which AI resets after every battle.
There are many ways to code path finding, but mobs still run around like headless chicken 30% of the time. Sure, your concept is simple enough, but having it actually work properly is another.
The closest thing that seems feasible is perhaps reactive attacks triggered by certain player conditions or skill uses.
Another method would be to store received attacks in an Array and then perform action priority based on if player is performing attack motion or if player has performed said action.
Then said skills can be flagged for reactive or preactive in the database based on condition