DOUBLEX RMMV INTERCEPT ITEM

RPG Maker MV

Lets users set states intercepting skills/items conditionally

  • DoubleX
  • 12/16/2015 02:25 PM
  • 1542 views
Note
This plugin's available for commercial use
This plugin's designed to mimic FF5's Blue Magic and FF6's Runic command

Games using this plugin
None so far

Notetag
*    # Skill/Item/State Notetags:                                            
 *      1. <intercept item tier: x>                                           
 *         - Lets battlers having states with this notetag intercept          
 *           skills/items with this notetag if x is positive for those states 
 *           and skills/items                                                 
 *         - If the intercept tiers of the states are greater than or equal to
 *           that of the skills/items, they'll be intercepted if other        
 *           conditions that are set by you are also met                      
 *         - If more than 1 battler can intercept a skill/item, the one having
 *           any intercept state for the shortest time will intercept it      
 *         - If more than 1 state of the same battler can intercept a         
 *           skill/item, the one having the highest priority will intercept it
 *         - This notetag needs <ally intercept item> and/or                  
 *           <foe intercept item> to be present as well to work               
 *      2. <ally intercept item>                                              
 *         - Interceptors having states with this notetag can intercept       
 *           skills/items with this notetag if their users are allies and     
 *           other conditions are met                                         
 *         - Putting this notetag above <foe intercept item> means allies     
 *           will always intercept the skills/items if enemies can also       
 *           intercept them                                                   
 *         - The ordering of <ally intercept item> and <foe intercept item>   
 *           in skills/items to be intercepted will be used if intercepting   
 *           states also has both of those notetags                           
 *      3. <foe intercept item>                                               
 *         - Interceptors having states with this notetag can intercept       
 *           skills/items with this notetag if their users are foes and other 
 *           conditions are met                                               
 *         - Putting this notetag above <ally intercept item> means foes will 
 *           always intercept the skills/items if enemies can also intercept  
 *           them                                                             
 *         - The ordering of <ally intercept item> and <foe intercept item>   
 *           in skills/items to be intercepted will be used if intercepting   
 *           states also has both of those notetags                           
 *      4. <intercept item chance: x>                                         
 *         - Interceptors having states with this notetag have a x% chance to 
 *           intercept skills/items that can be intercepted if other          
 *           conditions are met                                               
 *         - Skills/items that can be intercepted with this notetag have a x% 
 *           chance to be intercepted by interceptors if other conditions are 
 *           met                                                              
 *         - The real chance of success is that of intercepting states        
 *           multiplied by that of skills/items to be intercepted             
 *         - If this notetag is absent, the chance of success will be 100%    
 *      5. <intercept item mp>                                                
 *         - Interceptors having states with this notetag absorb mp equal to  
 *           the mp cost of the skills/items intercepted if those skills/items
 *           also have this notetag                                           
 *      6. <intercept item tp>                                                
 *         - Interceptors having states with this notetag absorb tp equal to  
 *           the tp cost of the skills/items intercepted if those skills/items
 *           also have this notetag                                           
 *      7. <hit intercept item mp>                                            
 *         - Failed interceptions due to <intercept item mp limit> will cause 
 *           the skill/item to only hit the interceptor if both the           
 *           skills/items and states have this notetag                        
 *      8. <hit intercept item tp>                                            
 *         - Failed interceptions due to <intercept item tp limit> will cause 
 *           the skill/item to only hit the interceptor if both the           
 *           skills/items and states have this notetag                        
 *      9. <intercept item learnt>                                            
 *         - Only skills/items that are currently learnt by its battler can be
 *           intercepted if both them and states have this notetag            
 *      10. <intercept item usable>                                           
 *          - Only skills/items that are currently usable by its battler can  
 *            be intercepted if both them and states have this notetag        
 *      11. <learn intercept item>                                            
 *          - Successful interceptions will cause its battler to learn the    
 *            intercepted skill/item if both them and states have this notetag
 *            and they're not already learnt                                  
 *----------------------------------------------------------------------------
 *    # State Notetags:                                                       
 *      1. <intercept item animation: id>                                     
 *         - Animation with id id will be played upon successful interceptions
 *      2. <intercept item count: x, f>                                       
 *         - The intercepting state will worn off after its battler used it to
 *           intercept x skills/items                                         
 *         - Failed interceptions will also be counted is f is true           
 *      3. <intercept item mp limit>                                          
 *         - If this state's used to intercept skills/items and intercepting  
 *           them would lead to the battler's mp being greater than that      
 *           battler's mmp, the intercept will fail                           
 *      4. <intercept item tp limit>                                          
 *         - If this state's used to intercept skills/items and intercepting  
 *           them would lead to the battler's tp being greater than that      
 *           battler's maximum tp, the intercept will fail                    
 *      5. <intercept item mcr>                                               
 *         - The mp absorbed by the battler using this state to intercept     
 *           skills/items will be the actual mp used by their users


Plugin Calls
*    # Skill/Item/State manipulations                                        
 *      1. meta.interceptItemTier                                             
 *         - Returns the intercept item tier in <intercept item tier: x>      
 *      2. meta.interceptItemTier = tier                                      
 *         - Sets the intercept item tier in <intercept item tier: x> as tier 
 *         - All meta.interceptItemTier changes can be saved if               
 *           DoubleX RMMV Dynamic Data is used                                
 *      3. meta.battlerInterceptItem                                          
 *         - Returns the ally/foe intercept item tier in                      
 *           <ally intercept item tier> and <foe intercept item tier> in the  
 *           form of { ally: true, foe: true }                                
 *         - Property name ally and foe will be defined only if the former and
 *           latter notetags are used respectively                            
 *         - The ordering of those property names is that of those notetags   
 *      4. meta.battlerInterceptItem = { ally: true, foe: true }              
 *         - Sets the ally/foe intercept item tier in                         
 *           <ally intercept item tier> and <foe intercept item tier> in the  
 *           form of { ally: true, foe: true }                                
 *         - Property name ally and foe will be defined only if the former and
 *           latter notetags are used respectively                            
 *         - The ordering of those property names is that of those notetags   
 *         - All meta.battlerInterceptItem changes can be saved if            
 *           DoubleX RMMV Dynamic Data is used                                
 *      5. meta.interceptItemChance                                           
 *         - Returns the intercept item chance in <intercept item chance: x>  
 *      6. meta.interceptItemChance = percent                                 
 *         - Sets the intercept item chance in <intercept item chance: x> as  
 *           percent%                                                         
 *         - All meta.interceptItemChance changes can be saved if             
 *           DoubleX RMMV Dynamic Data is used                                
 *      7. meta.interceptItemMp                                               
 *         - Returns the intercept item mp flag in <intercept item mp>        
 *      8. meta.interceptItemMp = flag                                        
 *         - Sets the intercept item mp flag in <intercept item mp> as flag   
 *         - All meta.interceptItemMp changes can be saved if                 
 *           DoubleX RMMV Dynamic Data is used                                
 *      9. meta.interceptItemTp                                               
 *         - Returns the intercept item tp flag in <intercept item tp>        
 *      10. meta.interceptItemTp = flag                                       
 *          - Sets the intercept item tp flag in <intercept item tp> as flag  
 *          - All meta.interceptItemTp changes can be saved if                
 *            DoubleX RMMV Dynamic Data is used                               
 *      11. meta.hitInterceptItemMp                                           
 *          - Returns the hit intercept item mp flag in                       
 *            <hit intercept item mp>                                         
 *      12. meta.hitInterceptItemMp = flag                                    
 *          - Sets the hit intercept item mp flag in <hit intercept item mp>  
 *            as flag                                                         
 *          - All meta.hitInterceptItemMp changes can be saved if             
 *            DoubleX RMMV Dynamic Data is used                               
 *      13. meta.hitInterceptItemTp                                           
 *          - Returns the hit intercept item tp flag in                       
 *            <hit intercept item tp>                                         
 *      14. meta.hitInterceptItemTp = flag                                    
 *          - Sets the hit intercept item tp flag in <hit intercept item tp>  
 *            as flag                                                         
 *          - All meta.hitInterceptItemTp changes can be saved if             
 *            DoubleX RMMV Dynamic Data is used                               
 *      15. meta.interceptItemLearnt                                          
 *          - Returns the intercept item learnt flag in                       
 *            <intercept item learnt>                                         
 *      16. meta.interceptItemLearnt = flag                                   
 *          - Sets the intercept item learnt flag in <intercept item learnt>  
 *            as flag                                                         
 *          - All meta.interceptItemLearnt changes can be saved if            
 *            DoubleX RMMV Dynamic Data is used                               
 *      17. meta.interceptItemUsable                                          
 *          - Returns the intercept item usable flag in                       
 *            <intercept item usable>                                         
 *      18. meta.interceptItemUsable = flag                                   
 *          - Sets the intercept item usable flag in <intercept item usable>  
 *            as flag                                                         
 *          - All meta.interceptItemUsable changes can be saved if            
 *            DoubleX RMMV Dynamic Data is used                               
 *      19. meta.learnInterceptItem                                           
 *          - Returns the learn intercept item flag in <learn intercept item> 
 *      20. meta.learnInterceptItem = flag                                    
 *          - Sets the learn intercept item flag in <learn intercept item> as 
 *            flag                                                            
 *          - All meta.learnInterceptItem changes can be saved if             
 *            DoubleX RMMV Dynamic Data is used                               
 *----------------------------------------------------------------------------
 *    # State manipulations                                                   
 *      1. meta.interceptItemAnimation                                        
 *         - Returns the intercept item animation id in                       
 *           <intercept item animation: id>                                   
 *      2. meta.interceptItemAnimation = id                                   
 *         - Sets the intercept item animation id in                          
 *           <intercept item animation: id> as id                             
 *         - All meta.interceptItemAnimation changes can be saved if          
 *           DoubleX RMMV Dynamic Data is used                                
 *      3. meta.interceptItemCount                                            
 *         - Returns the intercept item count with the fail flag in the form  
 *           of { count: count, fail: fail }                                  
 *      4. meta.interceptItemCount = { count: count, fail: fail }             
 *         - Sets the intercept item count with the fail flag as count and    
 *           fail in the form of { count: count, fail: fail }                 
 *         - All meta.interceptItemCount changes can be saved if              
 *           DoubleX RMMV Dynamic Data is used                                
 *      5. meta.interceptItemMpLimit                                          
 *         - Returns the intercept item mp limit flag in                      
 *           <intercept item mp limit>                                        
 *      6. meta.interceptItemMpLimit = flag                                   
 *         - Sets the intercept item mp limit flag in                         
 *           <intercept item mp limit> as flag                                
 *         - All meta.interceptItemMpLimit changes can be saved if            
 *           DoubleX RMMV Dynamic Data is used                                
 *      7. meta.interceptItemTpLimit                                          
 *         - Returns the intercept item tp limit flag in                      
 *           <intercept item tp limit>                                        
 *      8. meta.interceptItemTpLimit = flag                                   
 *         - Sets the intercept item tp limit flag in                         
 *           <intercept item tp limit> as flag                                
 *         - All meta.interceptItemTpLimit changes can be saved if            
 *           DoubleX RMMV Dynamic Data is used                                
 *      9. meta.interceptItemMcr                                              
 *        - Returns the intercept item mcr flag in <intercept item mcr>       
 *      10. meta.interceptItemMcr = flag                                      
 *          - Sets the intercept item mcr flag in <intercept item mcr> as flag
 *          - All meta.interceptItemMcr changes can be saved if               
 *            DoubleX RMMV Dynamic Data is used


Video


Prerequisites
Abilities:
1. Little Javascript coding proficiency to fully utilize this plugin

Terms Of Use
You shall keep this plugin's Plugin Info part's contents intact
You shalln't claim that this plugin's written by anyone other than DoubleX or his aliases
None of the above applies to DoubleX or his/her aliases

Changelog
*      v1.00b(GMT 1000 30-1-2016):                                           
 *      1. Fixed typo $dataStates(stateId) instead of $dataStates[stateId]    
 *      2. Fixed undefined BM.interceptors when changing states outside battle
 *      3. Fixed missing argument item in GB.possibleInterceptStates bug      
 *      4. Fixed searching interceptors in the interceptor state id pairs bug 
 *      5. Fixed returning interceptor state id pair in GU.interceptor bug    
 *      6. Fixed learning skills that are already learnt bug                  
 *      7. Fixed passing a battler instead of an Array to showNormalAnimation 
 *      v1.00a(GMT 1500 16-12-2015):                                          
 *      1. 1st version of this plugin finished