ATK
ATTACK.BIN and .DT6 combine to form the (significantly smaller) .ATK lump. Basically, each field was re-worked from an INT to whatever capacity was necessary to encapsulate its full range of values. This is intentionally ad-hoc and sub-optimal, so large lumps may eventually split like .SEZ.
.ATK is headerless, with variable-length records. The number of attacks is defined in .GEN.
Attack Record Format[edit]
Data'*+ | Meaning |
---|---|
STR | Attack Name |
STR | Attack Caption |
STR | Description in "Spells" menu |
BYTE | Animation palette |
BIT(11) BIT(5) |
Animation picture Base Attack Stat(Atk,Mag,HP,Lost HP,Random[0..999],100,HP,MP,Atk,Aim,Def,Dog,Mag,Wil,Spd,Ctr,Focus,Extra Hits,Previous attack,Last damage to attacker,Last damage to target) |
BIT(4) BIT(4) |
Attacker Animation(Strike,Cast,Dash In,SpinStrike,Jump,Land,Null,Standing Cast,Teleport) Attack Animation(Normal,Projectile,Reverse projectile,Drop,Ring,Wave,Scatter,Sequential Projectile,Meteor,Driveby,Null) |
BIT(2) BIT(14) |
Animation pattern(Cycle forward,Cycle backward,Oscillate,Random) Caption Delay[0..16383] |
BIT(15) BIT(1) |
Caption Display Time +1 [0..16384] wasted |
BIT(4) BIT(3) BIT(1) |
Target Class(Enemy,Ally excluding dead,Self,All,Ally including dead,Ally excluding self,Revenge (last hit),Revenge (whole battle),Previous target,Recorded target,Dead allies (heroes only)) Target Setting(Focused,Spread,Optional spread,Random focus,First target) wasted |
BIT(4) BIT(4) |
Target Stat (HP,MP,Atk,Aim,Def,Dog,Mag,Wil,Spd,Ctr,Focus,extra Hits,Poison register,Regen register,Stun register,Mute register) Base Def. Stat (Default (Wil if base attack stat is Mag, Def otherwise),HP,MP,Atk,Aim,Def,Dog,Mag,Wil,Spd,Ctr,Focus,extra Hits) |
BIT(11) BIT(5) |
Attack Delay (ticks) Number of hits[1..20] |
BIT(3) BIT(3) BIT(7) BIT(11) |
Damage Equation(Normal,Blunt,Sharp,Pure Damage,No Damage,MaxSet,Current Set) Aim Math(Normal,Poor,Bad,Never misses,Magic) Chain rate % Chain-to attack number + 1, 0 for none |
BIT(11) BIT(5) |
Extra Damage % + 100 Additional Bitsets(Mutable, Fail if Poisoned, Fail if Regened, Fail if Stunned, Fail if Muted) |
INT | MP Cost (can be negative) |
INT | HP Cost (can be negative) |
INT | Money cost (can be negative) |
BIT(64) | Attack Bitsets(see:.DT6) |
BIT(3) BIT(3) BIT(1) BIT(1) |
Tag Condition 1(Never, Always, Hit, Miss, Kill) Tag Condition 2(Never, Always, Hit, Miss, Kill) No Tag Check 1 No Tag Check 2 If "Tag condition" is "Never", then the two ints below are not present. Additionally, if "No Tag Check 1" is set, then only 1 int follows. |
INT? INT? |
Tag to set #1(<0 to un-set) Tag Check #1(<0 to check if OFF) |
INT? INT? |
Tag To Set #2 Tag Check #2 |
'Note: All "STR" variables in .ATK are null-terminated Strings.
*Additionally: "BIT(7)?" means that the next 7 bits may or may not be present. Red text is usually the limiting factor.
+Also: Data types in red require expansion to include current or WIP features.
Again, complaints roll in: "It's too volatile" is the most common one, and valid. Just rest assured that we are keeping this in mind. Most importantly, consider that the .RPG format itself is preserving, so you can always "re-convert" your game to .XRPG.
HEADER.LMP . _FNT.png . .PT4_# . .PT6_# . .HERO_#.png . SEZ . EFX . BFF . FOE . _TIL_#.png . _MXS_#.png . ###.MAP . HRO . ATK . SCRIPTS_#.HF . SCRIPTS.LST