Another attempt at multiple battle systems
BMM_Archive · July 15, 2026
Original Source
- Original title: Another attempt at multiple battle systems
- Original author: Tsukihime
- Original date: August 13, 2012
- Source thread: https://forums.rpgmakerweb.com/threads/another-attempt-at-multiple-battle-systems.4032/
- Source forum path: Game Development Engines > Ruby Game System (RGSS) Scripts > RGSSx Script Support
Summary
Didn't like my first one. It changed too many things. Here's my new design. Looks something like this: http://dl.dropbox.com/u/23043573/RPG%20Maker/RMVXA%20Scripts/PluginBattleSystem.txt The idea is to abstract away the BattleManager and let it decide which battle manager to actually use.
Archived First Post
Here's my new design.
Looks something like this: http://dl.dropbox.com/u/23043573/RPG%20Maker/RMVXA%20Scripts/PluginBattleSystem.txt
The idea is to abstract away the BattleManager and let it decide which battle manager to actually use.
Because you should *always* setup the battle manager before you actually use it, I decided to put it there
module BattleManager
def self.setup_battle_manager
bs = Tsuki::PBS::Battle_Managers[$game_system.battle_system]
@battleManager = Object.const_get(bs).new
end
def self.setup(troop_id, can_escape = true, can_lose = false)
setup_battle_manager
@battleManager.setup(troop_id, can_escape, can_lose)
end
end
class IBattleManager
def setup(...)
# the actual setup
end
end
You can inherit from this class to define your own battle managers,
class MyBattleManager < IBattleManager
def setup(...)
super
#now do some more things
end
end
BattleManager.do_something(arg1, arg2, ...)
Scene_Battle will still be the same thing, except you can define new battle scenes that inherit from Scene_Battle if needed.
class My_Scene_Battle < Scene_Battle
end
Rather than saying
SceneManager.call(Scene_Battle)
SceneManager.call_battle_scene
Any thoughts on the design?
Note that this should in theory support any battle system, because all the battle manager does is determine which battle system to use. If you're using an ABS system, well, it just has to initialize the ABS battle manager and then off it goes.
Sprites and windows are handled by the battle scene, so that is isolated to their own systems.
You shouldn't really have any conflicting attributes in the Game_ objects because your system shouldn't depend on the actors' values; instead, they should be deciding what to do based on the values.
The only real problem I see is that most people prefer to alias and override, which does not work with this plugin battle system. All battle systems will need to be re-written to use subclassing, so if you need your own Spriteset_Battle, just inherit from the default, if you need a new window, just inherit it. If you need a new scene, just make one.
There are only two calls required to make the system work properly
BattleManager.setup(...)
SceneManager.call_battle_scene
Downloads / Referenced Files
RPG Maker Web attachments are mirrored locally when available. Other external links remain hosted by their original creator or third-party service.
Creator Claims / Removal
If you are the original creator and want this listing reassigned, edited, or removed, join BMMPlay and contact the moderators with proof that matches the original RPG Maker Web profile, linked GitHub, itch.io page, or another public creator identity.
Replies (0)
No replies yet.
Topic Summary
Loading summary...