Xyphien Forums

Hello Guest!. Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, sell your games, upload content, as well as connect with other members through your own private inbox!

Plugin Zephir Battle System

Nio Kasgami

Towns Guard
Introduction :
Are u already bored of this sideview? or having to setup your skill inside of notebox? More a fan of tankentai?
There we are! Zephir Battle System is somewhat the child of tankentai but far more different! it's neither a sideview neither a Tactical Battle system!
Then it's what? it's a hybrid who mimic Arc rise Fantasia / Grandia Battle system...
Mixing both TBS and PTB , it's permit to have a new fresh battle system who will be obviously optimised for both deskopt and cellphone use!
And will be compatible with Luna Engine.

SideNote before begin:
Z.B.S (Zephir Battle System) work in the 4 directions and everything's is auto setup for get the graphics in this senses. Then when you doing your Battle Battler for the system take in consideration to make a version for the 4 directions in the MV normal Setup (the Charset position).
when the system refert to 'index' in the configuration it's mean not a row but a 'block'

How it's will be setup :
The System Will have 3 big file :
  • Setup File (where you actually setup every bits of the keyword)
  • Configuration File (Where you setup the actor and enemies system setting and skill configuration)
  • System File ( It's the core file where the whole system is coded you don't have to touch this unless you want to edit the battle system)
The system will be pretty much similar to Tankentai in configuration where you will have to edit internally of the setup and configuration file.
Although far more easier than Tankentai to understand the logic it's may require JS knowledge.

a example of the configuration :
BattleCore.prototype.SkillConfiguration = function() {
    var action = Zephir.ActorFullAction;
        case 1 :
        return action.swordAttack;
as you can see depending the id it's will return a certain Action sequence.

Then how to create action sequence...That's here the funny part begin! The way's Zephir make possible to have TONS of setup. You don't take the keyword YOU create the keyword!
Although where in tankentai it's was possible to set the specific pixel Zephir work on a prebuild grid system so you set on a specific cell of the grid...like in a cartesian map!

Here a pure example of Movement setup and a setup of how make action sequence.
Zephir.MoveSetup = {
    // type :
    // 'target' : will run to the target.
    // 'random' : will make the actor to a random position on the map (range can be specified in grid)
    // 'forced' : will move the target to a SPECIFIC AXIS of the battle grid.
    // 'move'   : will move the target to a SPECIFIC range on the battle grid.
    // 'special' : use specific rule for the movement.
    // grid : [x,y] depending the type it's can serve to move to a specific place in the grid to
    // a certain range.
    // the whole battle system is based on a grid who are setup either in the plugin Manager or
    // in a script call before the battle.
    // when using the type forced the actor will move to a certain coordinate of the grid [0,0] are the center
    // it's pretty much work like when you are mapping and want to know the coordinate of the event.
    // when using random the grid serve for know the max range the actor can move. Like a box.
    // when using move it's more to a certain distance
    // when using target it's set the range how the actor will stay away's of the enemy. 0,0 is 1 grid cell away's
    // of the enemy and also the default or null , null.
    // some special rule can be apply those are premade command you implement be sure the type is special.
    // 'straffing' : will straff away's of the enemy and can be set to both x or Y the second value is becoming the range.
    // 'jumpNear/Far' : will make the user jump NEAR or AWAYS of the enemy. x serve as speed value and y as a range value.

    runToEnemy: {fileIndex: "", index: 2, speed: 4, loop: true, grid: [null,null], type: 'target' },
    stepAway: {fileIndex; "", index: 2, speed: 4, loop: true, grid: [1,'straffing'], type: 'special'}
Zephir.ActorFullAction = {
// internal variable.
    var a : ActorMotions,                     // Request Actor Motions.
    var e : EnemyMotions,                     // Request Enemy Motions.
    var m : MoveSetup,                        // Request move setup action.
    var w : WeaponSetup,                      // Request Weapon setup action.
    var ani : this.playAnimation(animations), // Request a animation.
    var wait : this.delay(time),              // Request a delay.
    var damage : this.damageType(type),       // Request a type of damage.

// Full Action Sequence.
    swordAttack: [ m.runToEnemy, a.prepareAttack, w.swing, ani('weapon'), e.hurt, damage('weapon'), wait(10), m.stepAway],

None for the moment sadly the system is to much a early stage for even offering the possibility to see something!

for the moment the system will be non-commercial only Until I get to finish a Stable Beta :3

Anyway's if you have any question just ask me!


Personally I'm bored with the old side battle myself, it's really REALLY stale after so many years in my opinion, so I'm curious what you are going to do with this!

Can you please post a video or something that I can (maybe) compare the battle system to? I really don't understand any of the JS coding yet (still learning). I did play Arc Rise Fantasia however, but I don't remember it much. I got upset because that all the characters leave the party and quit early. I did however play their new (and last) game called Stella Glow and I love it.

Nio Kasgami

Towns Guard
Hum I do know Arc rise fantasia and Grandia are EXTREMELLY similar so I guess I can post a sample video of how Arc rise fantasia Although Zephir Battle System will be different on certain part like the movement and the way's the battle a setup because I just don't know yet how to create the list method for being able to eval the list for recognize 'combo' method