The following is a commented version of the data file "Rydia_parasite_ed.txt".
Please note that my comments are mostly extrapolated and unconfirmed!
; 2007.10.07 スキル「触手拘束」と対応アニメ追加
The above line is a comment about the addition of a skill animation. It is useful in showing that the general rule of semicolons (";") starting comments seems to be still in place. In addition, empty lines seem to ignored as well.
namej = 寄生リディア
This is the name of the enemy as it is displayed in the game.
maxHP = 120 pow = 12 con = 8 agl = 10 mgc = 28 min = 24 chm = 18
These are the basic statistics for her if she is Level 1.
Her maximum HP are 120. The other values, obviously attributes, are not quite clear to me. I suspect that pow is strength, con is constituion, agl is agility, mgc is magic attack, min is mind or magic defense and chm is charisma, but I have no evidence for that yet.
maxHPup = 3.0 powup = 0.3 conup = 0.1 aglup = 0.7 mgcup = 1.3 minup = 1.3 chmup = 1.3 mtrchg = 12 chmrst = 100
The lines maxHPup to chmup quite obviously describe how the enemy levels up. For each level above level 1, these values are added to their respective attributes. Once they have been added, all fractions are dropped. So, the development of her pow value would be: Level 1 to 4: 12, level 5 to 7: 13, ...
I am not sure about mtrchg and chmrst. Help would be appreciated.
; 打撃攻撃に弱く属性攻撃に強い。 rst_Beat = -50 rst_BeatW = -100 rst_BeatH = -100 rst_Slash = 80 rst_Thrust = 80 rst_Heat = 80 rst_Water = 100 rst_Blow = 80 rst_Earth = 100 rst_Freeze = 80 rst_Thunder = 80 rst_Light = 100 rst_Dark = 100 rst_Poison = 100 rst_Suck = 95 rst_SoundWave = 90 rst_Acid = 90
The comment in the first line of this block describes her as weak when dealing with punches but strong against special attacks.
From this and the list of the pattern "rst_" + [Damage Type Name], it can be deduced that negative values describe a weakness, while positive values indicate strength of protection.
The player documentation yielded that the final damage is derived by "damage * (100 - applicable resistance value) / 100". Thus, a resistance of 100 would mean complete neutralization, 50 would cut the damage in half, 0 would leave the damage unchanged, while -50 would be 1.5 times the normal damage and -100 even twice the normal damage.
exp1 = 10 exp2 = 12 gold = 20
Quite obviously, these three values indicate the amount of experience points and gold to be gained for defeating the monster. The meanings of the different exp values needs to be investigated (^_^;;.
trgsel = 1
This also needs further investigation.
anim_Stand_0 = 0,0,199,199,4,0,0 anim_Stand_1 = 200,0,399,199,2,0,0 anim_Stand_2 = 400,0,599,199,2,0,0 anim_Stand_3 = 600,0,799,199,2,0,0 anim_Stand_4 = 0,200,199,399,2,0,0 anim_Stand_5 = 200,200,399,399,2,0,0 anim_Stand_6 = 400,200,599,399,2,0,0 anim_Stand_7 = 200,200,399,399,2,0,0 anim_Stand_8 = 0,0,199,199,1,0,0
These are obviously the animation data for the enemy. The name pattern seems to be "anim_" + [State Name] + "_" + animation phase number.
The following four numbers are obviously upper left corner x and y coordinates and lower right corner x and y coordinates of the image to be displayed within the graphics file.
The numbers afterwards seem to require more investigation. Based on the information in the player folder, it seems to be that the first number determines how many frames that image is displayed. The last two values would be the x and y offset for the image should this be necessary.
anim_Punch_0 = 0,400,199,599,3,0,0 anim_Punch_1 = 200,400,399,599,1,0,0 animloop_Punch = Punch,1
More animation data. The animloop command ("animloop_" + [State Name]) indicates where the animation should go to once it has gone through all images. Without this command, the animation will jump to its beginning, thus creating an endless loop.
If you use the animloop command to point to the last image of the animation, though, it will run through all frames once and then stay at the last frame.
anim_StepForward_0 = 400,400,599,599,1,0,0 anim_Damage_0 = 200,400,399,599,1,0,0 ;anim_Kiss_0 = 700,200,799,299,1,0,0 ;anim_Kiss_1 = 600,300,699,399,1,0,0 ;anim_Kiss_2 = 700,300,799,399,1,0,0 ;anim_Kiss_3 = 600,400,699,499,1,0,0 ;anim_Kiss_4 = 700,400,799,499,1,0,0 ;anim_Kiss_5 = 600,200,699,299,1,0,0 ;animloop_Kiss = Kiss,5 anim_Inject_0 = 700,400,799,499,1,0,0 anim_Inject_1 = 600,400,699,499,1,0,0 anim_Inject_2 = 700,300,799,399,1,0,0 anim_Inject_3 = 600,300,699,399,1,0,0 anim_Inject_4 = 700,200,799,299,1,0,0 anim_Inject_5 = 600,200,699,299,1,0,0 animloop_Inject = Inject,5 anim_Attaching_0 = 700,200,799,299,1,0,0 anim_Attaching_1 = 600,300,699,399,1,0,0 anim_Attaching_2 = 700,300,799,399,1,0,0 anim_Attaching_3 = 600,400,699,499,1,0,0 anim_Attaching_4 = 700,400,799,499,1,0,0 anim_Attaching_5 = 600,200,699,299,1,0,0 animloop_Attaching = Attaching,5 anim_Capturing_0 = 700,200,799,299,1,0,0 anim_Capturing_1 = 600,300,699,399,1,0,0 anim_Capturing_2 = 700,300,799,399,1,0,0 anim_Capturing_3 = 600,400,699,499,1,0,0 anim_Capturing_4 = 700,400,799,499,1,0,0 anim_Capturing_5 = 600,200,699,299,1,0,0 animloop_Capturing = Capturing,5 anim_Hold_0 = 700,400,799,499,1,0,0 anim_Hold_1 = 600,400,699,499,1,0,0 anim_Hold_2 = 700,300,799,399,1,0,0 anim_Hold_3 = 600,300,699,399,1,0,0 anim_Hold_4 = 700,200,799,299,1,0,0 anim_Hold_5 = 600,200,699,299,1,0,0 animloop_Hold = Hold,5
More animation data, no further comment needed.
;pzdat_s1 = 当たり判定x,y,飛び道具発射位置x,y,口の位置x,y pzdat_Stand = 104,86,100,86,103,53 pzdat_Punch = 110,100,60,70,60,70 pzdat_Damage = 110,100,60,70,60,70 pzdat_StepForward = 150,100,150,100.165,85 pzdat_Kiss = 77,30,77,30,77,30 pzdat_Inject = 77,30,77,30,77,30 pzdat_Attaching = 77,30,77,30,77,30 pzdat_Capturing = 77,30,77,30,77,30 pzdat_Hold = 150,100,78,24,78,40
Now, this is something to be grateful for. The comment line explains what this is all about.
The pzdat command ("pzdat_" + [State Name]) defines the Body Locations on the enemy: The Hit Zone x,y, then missile weapon origin x,y, and finally mouth x,y.
sklnum = Punch sklprb = 2 ;sklnum = MagicDrainKiss ;sklprb = 5 sklnum = ToxinInjection sklprb = 5 sklnum = DownInjection sklprb = 5 sklnum = ArmHold ; 触手拘束 sklprb = 5
This last section defines the skills available to the character and how likely the computer is to use them.
Each skill requires two lines:
Return to the general info about 寄生リディア.