You'll need
Yanfly Skill Core,
Yanfly Instant Cast &
Yanfly Select Control(to use this pluign you'll also need
Yanfly Target &
Battle Cores)
You'll need 2 states.
State 1 aka Dance.
This state make it so it last 1 action turn.
In the notetag box put this in it:
<Instant Item: 1 to i>
<Instant Skill: 1 to s>
Where i is highest id for items you have while s ie the highest id for skills you have.
Theese tags will let you use any skill or item for 1 free turn.
If you
don't want items to be affected remove "Instant Item". And put this notetag in all items that can be used in battle:
<After Eval>
if(user.isStateAffected(x)){
user.addState(x);
}
</After Eval>
Where x is the id of state 1.
State 2 aka Used Turn.
We'll use this state to see if a person already use a turn. Nothing is put into this state. Just make sure it's check to be removed at the end of battle.
In all skills and items that will be affect by the dance skill put this in it:
<Before Eval>
if(!user.isStateAffected(x)&& user.isStateAffected(y)){
user.removeState(y);
}
</Before Eval>
<After Eval>
if(!user.isStateAffected(x)){
user.addState(y);
}
</After Eval>
Where x is the id of state 1 and y is the id of state 2.
Dance Skill:
In your dance skill make it where it apply the dance state 1000%. Then in that skills notetag box put this in it:
<Custom Select Condition>
condition = target.isStateAffected(y);
</Custom Select Condition>
Where y is the state id of the second state.