This script adds cast times for your skills.
Time is measured in turns.
When you use a skill, it checks how many turns you must wait. All skills have a cast time of 0 by default, which means you can use it immediately.
If the casting time is greater than 0, you will be put into a "casting" state, which should prevent you from inputting any actions.
When enough time has passed, the battler will come out of casting state and execute the skill.
If for some reason the casting state was removed, it will break the skill preparation and the battler can choose an action.
Create a new state for the "casting" state.
Set the ID at the top of the script.
Ideally, you should also set the state restriction to "cannot move" to make it realistic. I don't know what will happen if you choose not to though.
Then tag any skills that should have a casting time > 0 with
<cast-time: n>For some integer n
Then when you (or the enemy) uses the skill, you will find yourself waiting that many turns before you execute the skill.
Script: Download here
I have overwritten one method in Scene_Battle.
If your battle system is incompatible, you will need to figure out where to insert the line with the "#new line" beside it.
def process_action return if scene_changing? if !@subject || !@subject.current_action @subject = BattleManager.next_subject end return turn_end unless @subject @subject.check_cast_time # new line if @subject.current_action @subject.current_action.prepare if @subject.current_action.valid? @status_window.open execute_action end @subject.remove_current_action end process_action_end unless @subject.current_action end
Edited by Tsukihime, 07 September 2015 - 11:16 AM.