Ever wanted multiple battle systems in a game?
This script allows you to create multiple battle managers that may have their own unique set of battle logic. Different battle scenes with their own battle windows can be added as well.
You can easily add support for many different battle systems in the game using this battle manager.
See demo for general set-up.
BattleManager module is still treated as the default manager, so scripts should in theory work unless you are overriding (eg: not alias, calling the wrong battle manager, etc)) any of the methods in the "Multiple Battle Systems" script.
Maybe you prefer ATB. Or you prefer side-view. Or both. Depending on the event, you may require specialized battles, for example the use of timers or custom sprite behavior. Any battle that you feel needs to behave differently can use its own battle manager to alter some of the default battle logic.
Demo (with ace): http://db.tt/zEk0S329
Note that Ace support makes the other systems look weird.
Probably not with complex systems that override many things.
But for scripts that focus on specific parts of the game like window-based scripts or additional attributes or things like that, then it should not be a problem.
Any battle system that requires their own scene should in theory be compatible. For example, if we had a tactical battle system, that would likely be easily added to the system.
If you need to override some existing classes for a specific system, consider subclassing. The advantage to this is that you don't need to override any of the default systems like you usually would. However the disadvantage is that you may end up with a bunch of scripts that are too specialized and don't work with each other.
Adapting an existing system to support these plugins shouldn't be too hard either, since the only change that's made is all references to BattleManager having a couple characters and a dollar sign added to them.
To add new battle systems,
1: if you have a custom battle manager (or you alias any methods), turn it into a class and inherit from BattleManagerPlus.
2: if you have a custom battle scene, inherit from Scene_Battle and rename all instances of BattleManager to @battle_manager
3: make sure that the engine knows to use your battle manager and your scene battle. $game_system.battle_manager stores the current battle manager in use.
4: if you are planning to have different battle HUD's, you should consider defining a set of subclasses all defining functions from abstract versions of the battle windows. This allows different battle systems to use their own windows without conflicting with each other.
Edited by Tsukihime, 15 May 2012 - 08:25 PM.