Ar Tonelico CBS
#1
Ar Tonelico Custom Battle System

Version: 1.1 Initial release plus bugs correction

Author: Kread-EX

Release Date: 16/04/2010


Introduction
This is a complete battle system, close to the one used in the commercial Playstation 2 game Ar Tonelico ~Sekai no Owari de Utai Tsuzukeru Shoujo~.
It provides a strong differentiation between regular fighters and magicians (Reyvateils) who basically charge their magic (Songs) then release it for great damage.
Though this system is not a perfect clone, it follows the same logic.

Features
  • ATB styled turns
  • Burst gauge
  • Harmonics system
  • Harmonics Overdrive
  • Custom damage display
  • Multi-hits support
  • Red and Blue magic
Screenshots
Content Hidden

Script
http://www.mediafire.com/?clfyyyjzzjt
You'll need DerVVulman's Animated Battlers.
Put the Animated Battlers above Main in new script sections, and put the CBS main script above the Animated Battlers.
Then put the patch under the Animated Battlers.

DEMO
http://www.mediafire.com/?w2nhtwtmirq

Customization
Not much since it's the first release. You can use it like a special ATB system, if you like it, by not creating any magician.

Compatibility
Clash with the SDK. Clash with almost all battle add-ons.
I'll make add-ons compatible with this script depending on user feedback.

Side Notes
This is a long-term supported script, so I'll add periodically new features depending on user feedback. So don't hesitate to comment and give ideas.
If, despite my efforts, you find any bug, you can report it here, or PM me about it. I'll be thankful.
The Reyvateil Guard system is not implemented yet. I know it.

Terms and Conditions
If you want to distribute this work somewhere, contact me first. Depending of the place, I can accept or decline.
Don't use this work for any commercial project. Seriously. It was Banpresto's idea to begin with.
You can use this for any non-commercial project and modify it to suit your needs. Just remember to give credit when it's due.

Credits
Gust and Banpresto, for creating Ar Tonelico in the first place.
Minkoff/DerVVulfman for the Animated Battlers script.
Demo ressources: Dollmage, Nakka, BlackMask, Grin (battlers), MoyasiWhite (icons) and Gozaru (face graphics).
Bug reports: MGC, sournote103, Zarox, MicKo.

If I ever forgot someone, I'm really sorry. Just tell me and I'll update this.
Reply }
#2
This is a really interesting battle sytem ^^
It took me a moment to understand it (and even now I'm not sure if I got everything) but that's not the point right now. So far, I noticed no problems.
And I'm sure this was a lot of work.
I'd say Good job ^^
Reply }
#3
This is a rather good hybrid between the Ar Tonelico battle system and a more classic one.

One thing annoys me : when the command menu is displayed for a vanguard, you can't call the Reyvateil's menu (that's delayed). In the original game Reyvateil's commands always prevails (except during an enemy attack). But that is really minor.

I encoutered a bug :
[Image: ATSerror.png]
I didn't remember the exact scenario but here are some elements :
- I was using blue magic for a long period (didn't notice how much SP were left)
- this appears just after an enemy special attack (that targeted all the party)
- I used a lot of HP-consuming skills (so perhaps some party members became KO ?)

In your script - Scene_Battle, l. 284 - there is :
Code:
if @reyvateil_harmonics < 0
      @reyvateil.harmonics = [(@reyvateil.harmonics - 5), 0].max
      @reyvateil_harmonics += 5
    end

@reyvateil.harmonics = [(@reyvateil.harmonics - 5), 0].max will always be 0.
I don't know if this line is useless or if it's an error, but I prefer to warn you.


Good continuation !
Some scripts :
Working on :
Reply }
#4
This line: @reyvateil.harmonics = [(@reyvateil.harmonics - 5), 0].max reflects a bug in RGSS. min and max methods are actually reversed.

I know the Reyvateil menu has a higher priority in AT, and that's what I did in the first place. However, after testing, I decided to swap it.
The reason is that I didn't want to use another hotkey (like SHIFT) to call it. If it's too annoying, I'll change it. :)

As for your bug report, thank you. I'll check this out. It may be the Reyvateil die while singing Blue Magic. I'm not sure yet.
Reply }
#5
Quote:This line: @reyvateil.harmonics = [(@reyvateil.harmonics - 5), 0].max reflects a bug in RGSS. min and max methods are actually reversed.

so if @reyvateil.harmonics is negative, then @reyvateil.harmonics - 5 is still negative (or there is really a huge bug in the RGSS), and it's useless to do a min or a max with 0.

Quote:I know the Reyvateil menu has a higher priority in AT, and that's what I did in the first place. However, after testing, I decided to swap it.
The reason is that I didn't want to use another hotkey (like SHIFT) to call it. If it's too annoying, I'll change it. :)

It annoys me only because I'm used to the original battle system. I don't think that it's really important.
Some scripts :
Working on :
Reply }
#6
The point is that the @reyvateil.harmonics musn't be negative. For instance, if the current value is 2 and I remove 5, I want it to be 0.
I used multiples of 5 for values so it shouldn't happen, but it's just a security.

Oh, I corrected the bug. I'll update the demo tonight.
Reply }
#7
wow really cool :D I just got an error, when I fought this guy on the right side. I had the percent over 1400, then I unleashed the attack and pressed B. While I was pressing B, the Demon died and the girl was on the row (because I pushed B). Then the game crashed, I think because the Demon was dead already^^
Great Job, you are one of my favourite scripters^^
Reply }
#8
Thanks Zarox :)
I've corrected all the bugs reported for now.
Reply }
#9
Very nice stuff Kread-EX ;D !

I didn't read everything, but from what I tried there seems to be a really annoying bug. When an actor dies and gets rezed (yeah, rezed), this actor can't do anything anymore.
Also, just a little critic on the configuration part.
I just thought this might be easier to configure this way for the Skill Hits part :
Code:
# Hit number for skills.
  # Format: when Skill ID then #nb of hits. Default is 1.
  def self.skill_hits(skill_id)
    if HitTimings.include?(skill_id)
      return HitTimings[skill_id].size
    else
      return 1
    end
  end
I just felt like this was unnecessary configuration, but meh, it's not killing anyone I guess. :p
Reply }
#10
Sorry MicKo, but what exactly 'rezed' means ? Resurrected ? If that's the case, in which case does that happen ? I ask this because I didn't notice that kind of bug (and I died a lot for testing purpose).

And yes, you have a good point about the configuration method. Though you made a mistake: HitTimings is a hash not an array. So its more like this:
if HitTimings.keys.include?(skill_id)
Reply }


Possibly Related Threads…
Thread Author Replies Views Last Post
   Ar Tonelico CBS Add-On : Atelier Series Battle Camera MGC 13 32,555 02-03-2013, 03:26 AM
Last Post: penguwin



Users browsing this thread: 4 Guest(s)