Just a theory, but you might be able to leverage
SRDude's Timed Hits +
Yanfly's Skill Core to do this. The idea I had was to:
1. Have a timed hit event
2. Leverage the accuracy variable from SRDude's plugin, $gameTemp.tas_power, to determine if the hit was "good enough" to warrant another timed hit event.
3. Leverage Yanfly Skill Core's After Eval functionality to actually make the check described in #2 and then force action the same skill so that it will run the timed hit event all over again.
It's crazy... but it just might work! You might add those plugins & set them up as they require... then use something like this in your attack skill:
<Timed Attack: default>
<End Timed Attack>
<After Eval>
//Check to see if the hit was good enough to warrant a follow up hit.
//That variable goes from 0 to 1, and I figure that 0.9 - 1.0 is accurate enough)
if ($gameTemp.tas_power >== 0.9) {
// Get the skill ID of the skill you want to force, so THIS skill's ID would go here
var skill = 194;
// The target's index. -1 for random. -2 for last target.
var target = -2;
// Set the forced action for the user.
// Queue the forced action.
BattleManager.queueForceAction(user, skill, target);
}
</After Eval>
Edit: I thought about it a bit and figured you'd want a way to limit how many hits you could possible "combo" so here is a version that would leverage something like that:
<Timed Attack: default>
<End Timed Attack>
<After Eval>
// Configured maximum number of timed hits
var maxTimedHits = 16;
// Adding a user specific attribute to track things & keep a running total
user._timedHits = user._timedHits || 0;
// Check to see if the hit was good enough to warrant a follow up hit.
//That variable goes from 0 to 1, and I figure that 0.9 - 1.0 is accurate enough)
if ($gameTemp.tas_power >== 0.9 && user._timedHits <== maxTimedHits) {
// Get the skill ID of the skill you want to force, so THIS skill's ID would go here
var skill = 194;
// The target's index. -1 for random. -2 for last target.
var target = -2;
// Update the number of timed hits
user._timedHits += 1;
// Queue the forced action.
BattleManager.queueForceAction(user, skill, target);
} else {
//reset values
user._timedHits = 0;
}
</After Eval>
All of this is un-tested and from the top of my head during my lunch break, but hopefully is a good starting point to your cause
