Reworking Seismic Slam

Is it possible to make Doomfist Slam be able to lower his cooldown based on how many people he hits with his seismic slam? Say like if he hits 2 enemies his cooldown on slam is 20% faster on his next slam. What would be the rule for that? If anyone would be show me that, that would be great.

rule("Reduce Cooldown")
{
	event
	{
		Player Took Damage;
		All;
		All;
	}

	conditions
	{
		"Checks if Damage source is from an Ability 1"
		Event Ability == Button(Ability 1);
		"Basic Support"
		Hero Of(Attacker) == Hero(Doomfist);
		"Duplication Support (if used, Basic Support isn't Needed)"
		disabled (Is Duplicating(Attacker) ? Hero Being Duplicated(Attacker) : Hero Of(Attacker)) == Hero(Doomfist);
	}

	actions
	{
		"Fix's Hitting Targets Before it goes onto Cooldown"
		Wait Until(Ability Cooldown(Attacker, Button(Ability 1)) != Null, 2);
		"Prevents Getting Free Slam Right After a Slam"
		Abort If(Ability Cooldown(Attacker, Button(Ability 1)) <= 2);
		"Reduce Cooldown by % of Base Cooldown"
		Set Ability Cooldown(Attacker, Button(Ability 1), Ability Cooldown(Attacker, Button(Ability 1)) - 0.600);
	}
}

that rule should work, its been tested in the practice range with no bugs.

0.6 is 10% of the 6s base cooldown. thats why it subtracts by 0.6, there is also a anti-infinite measure by prevent lowering it if its already too low (basically just a max number of reduces per use). but if you dont want that just remove it.

each action/condition has a Comment so you can understand what it does.

also it uses damage taken instead of damage dealt because damage dealt would not trigger for players hit at the same frame (would trigger, but for only one of the players hit on that frame)