-
Notifications
You must be signed in to change notification settings - Fork 196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Embric of Wulfhammer's Castle: "Row" battle command is missing #680
Comments
Row is a special command that everybody has. Is not implemented yet because i never found it useful. |
Asked cherry about the "Row" command but he hasn't figured this out yet. |
Just leaving these two links here: What I remember/think of it:
|
I remember one non RPG Maker game that used a row system (Pier solar, don't play it, didn't age well) and in this game the front-row completely protected the back row from normal attacks. The 60/40 makes sense, maybe 70/30 would be better, otherwise your healer is still hitted to often :D. |
If I understood this correctly the row does the following:
Pincer is always 0% bonus. Looks like the hit-chance is modified in the same way (though not by 25% but by "25 out of 100" + hitchance %) Enemy is always in the "Front row". So this is boring. |
I can confirm that the damage from physical attacks is increased by 25% if the source and the target are in the front row. From my tests with RPG_RT it looks like that being in the back row doesn't reduce the probability being targeted by an enemy. |
To implement If you're interested in implementing this feature, I can dig into RPG_RT and write out the behaviors I find. |
I'm definitely keen on learning more about the technical details of the row behaviors. But I'm not sure if my skills are sufficient to implement the whole row feature. |
Ok so good news is as far as I can tell, row only affects normal physical attacks. The adjustments are rather simple
Physical Attack Evasion AdjustmentAfter the adjustment for
If defender is an actor:
Damage AdjustmentThis happens after If attacker is an actor:
Next, attribute adjustments are applied, then If defender is an actor:
After this charging, critical hit, strong defense, etc.. All of these numbers should be confirmed with testing |
Thank you for providing the data! I did some tests the last days and I noticed that in Normal and Initiative encounter conditions the player party has a damage advantage against the enemy party. I tested this with 800 Attack and Defense for both the players and the enemies (to make calculations easier) which means in normal cases the damage ranges between 160 and 240. I encountered the following:
This explains the insane dodge rates I had in my tests with the Surround encounter condition... Still have to do more tests with the Back, Surround and Pincer encounter conditions to get (halfway) accurate damage values. |
Oops, your example is right. I messed up, the 125 is damage bonus based on source row, the 75 is damage reduction based on target row. I will update the post. |
More damage values: Back encounter condition:
Surround encounter condition:
Pincer encounter condition:
Noticeable is the lower average damage in the Back and Surround encounter conditions and the odd player damage values in the Surround encounter condition (this -6.25% is coming from calculating 1.25 times 0.75 which equals 0.9375). In the Surround and Pincer encounter conditions the row doesn't matter on the damage dealt. |
Regarding the mechanics of the row state and row adjustment itself. This one is a little strange. RPG_RT has 2 flags, a Some of these mechanics below are already implemented. Savegames
Row Command in Menu Scene
Battle Adjustments
Row Command in Battle
Battle Start Adjustments
|
btw are row changes in battle temporary or do they carry over? Would've expected a flag for "temporary row" but this |
I don't believe they are temporary, It looks like this At least until we understand 2k3 battle system better and refactor it, we could probably get away with not emulating rowAlt and the 1 frame difference as a first pass. |
I did the hit rate tests now. Because it is impossible to get the exact accuracy values with black box testing I used the terms "Normal hit rate" (which translates to about 90% hit rate) and "Reduced hit rate" (which translates to about 65% hit rate) if I encountered frequent dodges. The hit rate percentage values are taken from your comment which contains the technical details. Normal and Initiative encounter condition:
Back encounter condition:
Surround encounter condition:
Pincer encounter condition:
The Surround encounter condition makes the battle literally a dodge-fest and interestingly the Pincer encounter condition doesn't change the damage and hit rate values at all. |
I have added a PR (#2321) now which implements the damage and accuracy modifiers depending on the row. But I have an other question: What is from your point of view the correct way to implement the in-battle row command? For me it looks like changes in liblcf are required (new BattleCommand type) and the biggest problem is probably the static database entry needed for the row battle command (this battle command is always available independent of the battle commands set in the LCF database). |
There is no lcf enum for row. RPG_RT hard codes the Row command to always be present at the last battle command in the command window. So it should be rather easy, you just need to add it directly, and then flip the row when the command is used. |
@rueter37 Really good catch with pincer attack. It looks like pincer uses an entirely different code path which is why I missed (WTF RPG_RT??). I confirmed by setting a break point and the normal attack code never executes during pincer.. I'm still looking for this |
Ok, so while there is an alternate code path for actor weapon attacks, which has to do with dual wield etc.. This was staring me in the face, I just read the code wrong. You are right that pincer makes row meaningless, which makes sense. I've updated the earlier posts. |
There is also this row command discussion by bugmenot which matches quite close to what matthew figured out: (even the "Back attack is broken" case and "*It's in the damage calculation, but never gets applied since Enemies are not of type 'Actor'. Either copy pasta or dummied out features.") https://rpgmaker.net/forums/topics/17752/?post=640190#post640190 |
From IRC:
|
Ally -> Ally should consider the row of the attacking ally and the defending ally, according to RE code. Should be confirmed with a test. |
So I think I understand now why The row command tries to behave like any other battle command, in that when you select it it doesn't happen right away. First the actor gets added to the So I guess they used this |
With bug #601 having been fixed, most of the commands are now correctly shown and usable in git. However, one of the commands, 'Row' is still missing.
Steps to reproduce:
The text was updated successfully, but these errors were encountered: