Note: This will not work until the Buff TLO for returning the Casters name is fixed.
You could use this same logic for alliance rotations, but I don't suggest sharing any ini files that you use a character name in. If your wanting to share your ini files I would assign an entry to the XTarget window for the characters name you are wanting to check, to enable cond10 in cond13.
So what is this going to do? This is going to use Cond10 as a switch. We are going to turn cond10 on(TRUE) and off(FALSE) based on the buff we are checking for and the caster of the buff.
I take no responsibility for the accuracy of this code, because I have no way to test it. I am only posting this as a way this could be accomplished.
If your just using 2 Bards then you don't have to check for Character Name, you just need to check if the Buff was NOT cast by you in cond13.
INI:
First Bard:
Cond10=TRUE
Cond11=${Cond[10]} && !${Me.Buff[Dance of the Blade].ID}
Cond12=${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[${Me}]}
Cond13=!${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.NotEqual[${Me}]}
; Cast my epic
DPS1=Bard Epic Here|100|cond11
; Turn off casting my epic
DPS2=command:/varset Cond[10] FALSE|100|cond12
; Turn On Casting My Epic
DPS3=command:/varset Cond[10] TRUE|100|cond13
; Add these to buffs just in case it gets missed in Combat
Buffs1=command:/varset Cond[10] FALSE|cond12
Buffs2=command:/varset Cond[10] TRUE|cond13
Second Bard:
Cond10=FALSE
Cond11=${Cond[10]} && !${Me.Buff[Dance of the Blade].ID}
Cond12=${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[${Me}]}
Cond13=!${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.NotEqual[${Me}]}
; Cast my epic
DPS1=Bard Epic Here|100|cond11
; Turn off casting my epic
DPS2=command:/varset Cond[10] FALSE|100|cond12
; Turn On Casting My Epic
DPS3=command:/varset Cond[10] TRUE|100|cond13
; Add these to buffs just in case it gets missed in Combat
Buffs1=command:/varset Cond[10] FALSE|cond12
Buffs2=command:/varset Cond[10] TRUE|cond13
Now once you go beyond 2 characters this requires a change to cond13 and it has to check for a specific character name. If I was going to share this with others there is one change I would make. I would target the Bard, I am going to be checking, that cast the buff. Then I would assign the character to the XTarget window using the "Current Target" option. I would do this BEFORE Starting the Macro. Assuming you used the third XTarget Entry, You now need to make a change to the Cond13 entry.
INI:
Cond13=!${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[${Me.XTarget[3].CleanName}]}
Now in all cases you have to have Cond10 set to True on the leading Bard, or you can set them all to FALSE, even on the leading bard, and create a hot key on the leading bard that sets the cond10 to true. That way you can startup the rotation by hitting your hot key on whatever bard you want to start the rotation. /varset Cond[10] TRUE
INI:
First Bard:
Cond10=TRUE
Cond11=${Cond[10]} && !${Me.Buff[Dance of the Blade].ID}
Cond12=${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[${Me}]}
Cond13=!${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[ThirdBardName]}
; Cast my epic
DPS1=Bard Epic Here|100|cond11
; Turn off casting my epic
DPS2=command:/varset Cond[10] FALSE|100|cond12
; Turn On Casting My Epic
DPS3=command:/varset Cond[10] TRUE|100|cond13
; Add these to buffs just in case it gets missed in Combat
Buffs1=command:/varset Cond[10] FALSE|cond12
Buffs2=command:/varset Cond[10] TRUE|cond13
Second Bard:
Cond10=FALSE
Cond11=${Cond[10]} && !${Me.Buff[Dance of the Blade].ID}
Cond12=${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[${Me}]}
Cond13=!${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[FirstBardName]}
; Cast my epic
DPS1=Bard Epic Here|100|cond11
; Turn off casting my epic
DPS2=command:/varset Cond[10] FALSE|100|cond12
; Turn On Casting My Epic
DPS3=command:/varset Cond[10] TRUE|100|cond13
; Add these to buffs just in case it gets missed in Combat
Buffs1=command:/varset Cond[10] FALSE|cond12
Buffs2=command:/varset Cond[10] TRUE|cond13
Third Bard:
Cond10=FALSE
Cond11=${Cond[10]} && !${Me.Buff[Dance of the Blade].ID}
Cond12=${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[${Me}]}
Cond13=!${Cond[10]} && ${Me.Buff[Dance of the Blade].ID} && ${Me.Buff[Dance of the Blade].Caster.Equal[SecondBardName]}
; Cast my epic
DPS1=Bard Epic Here|100|cond11
; Turn off casting my epic
DPS2=command:/varset Cond[10] FALSE|100|cond12
; Turn On Casting My Epic
DPS3=command:/varset Cond[10] TRUE|100|cond13
; Add these to buffs just in case it gets missed in Combat
Buffs1=command:/varset Cond[10] FALSE|cond12
Buffs2=command:/varset Cond[10] TRUE|cond13
This would be my approach, because you only need to focus on getting cond10 turned on and off correctly