7th Dragon - Of Course I Know Who Santa Claus Is, You Moron

Put your Let's Plays in here.
User avatar
ThomasFub wrote:
Tue Dec 08, 2020 6:00 am
Hey, arent those elvish runes around the edge of the label.

Wait, and dont they spell out Im not in love with you anymore?

How very unorcish.
I think you might be in the wrong thread

User avatar
Due to computer issues (my current rig decided to basically die and is nearly unusable now) and further complications in my life, preventing me from getting another computer easily, this let’s play is officially abandoned.

User avatar
Okay those computer issues and complications have been dealt with. Let's get back to work.

We encounter a unique foe. Welcome to 7th Dragon.

ImageImage

Incidentally I also took this time to really dig through and organize the data and my back end stuff for the LP. One of the big misconceptions I had was that conditional drops in this game were based off of getting the killing blow with them. They're not. Unlike in Etrian Odyssey, 7th Dragon conditionals don't care how you kill an enemy. They just track that you hit them with the correct damage type at some point. Ice resistant enemy has an Ice damage conditional? No need to time it so you kill the enemy with Ice. Just smack the enemy with Ice at some point and you qualify.

On the flip side, this also makes it easy to get disqualified from certain conditional types, such as not using a specific damage type against an enemy for the entire fight.

On the other other hand, conditional drops are mostly just used for meat drops. There's like 1 or 2 cases where this is used for actual rare drops. So if you don't have a Fighter, you can mostly ignore this mechanic entirely, as it's basically sort of a flavor thing really.

:toot:

I've heard of rainbow dragons before but this is ridiculous.

Also that sure is an approach to handling conditional drops alright. At least the game doesn't make you kill stuff with curse damage or useless mage sticks.

User avatar
Okay been doing some more research. I actually went and learned how to use a debugger (thanks Ghidra) so I can actually extract formulae and stuff like that from the game instead of guesstimating out of my ass and trying to "reverse engineer" that way with prodding at the game's RAM or files.

I was slightly wrong with critical hits. They reduce the target's DEF by 1/3, not 30%. Which makes them slightly better than I expected. :v: More relevantly, it turns out the critical hit rate is... 5% for players, 3% for enemies. And no stats influence it either. Yeah uh, great deal. (Really more relevant for enemies than for you really.) Micro and Macroanatomy don't stack additively with this. They're separate rolls. (So a 22.1% chance for a crit with 1 at max level. In random encounters only.)

Looked into a bit of the damage formula and found some nuances I missed. Not done looking into it though but here's a bit of what I found. (Assume all formulae in the game round down aggressively whenever they can.)

Guarding reduces physical attack damage by 50%, or 75% if you're using an EX guard. For spells, it's reduced by 30% instead, or 65% if you're using an EX guard. Melee attacks have their damage reduced by 50% when attacking from the back row, or trying to deal damage to the back row.

Damage Variance:
-If damage is 20 or less, damage ranges from -2 to 2.
-If damage is 100 or less, damage ranges from -5 to 5.
-If damage is greater than 100, the damage will be randomized in a range from 95% to 105% of the final damage output.
-If you dealt 0 damage, then you instead deal 8% to 12% of your ATK as damage instead.

Also fun fact that's not really relevant unless you are overleveled or severely underleveled for an area. If your damage output is less than 10% of your ATK stat, it has a 25% chance of missing. (Same applies to enemies.)

Speaking of accuracy, I finally dug out the entire thing. Almost.
Spell Attack Accuracy wrote: Accuracy = (100 * (Attacker Level + Attacker INT + 400)) / (Target Level + Target SPD + 400)
Yeah turns out level is a part of accuracy as well. Also to those of you familiar with EO1 or at least the completed LP of it on the forums, this formula should look familiar to you. Yeah it's basically the EO1 accuracy formula only with the 500 constants replaced with 400s. So yeah, accuracy matters slightly more in 7th Dragon, but ultimately not much of a factor to worry about in most cases. Mages almost never need to worry about accuracy due to their INT providing a big boost.

As for physical attacks, it's slightly more complicated. If you're a Bow Rogue. Otherwise it's pretty similar.
Physical Attack Accuracy wrote: Arrow accuracy = Arrows Fired * -3 + 100
If Arrow accuracy is below 50, set it to 50.
If user is not using a Bow or is an enemy, Arrow accuracy = 100.
Accuracy = (Arrow accuracy * (Attacker Level + Attacker SPD + 300)) / (Target Level + Target SPD + 300)
Accuracy matters slightly more for physical attackers due to the lower constants. It's something to keep in mind, but not really something to worry about as everyone has 100% innate accuracy and unless there's a drastic difference in SPD, it's not too much to worry about. Unless the enemy uses a SPD buff, then it's something to worry about cause that can actually have an effect.

Bow Rogues on the other hand, actually have to worry about this mechanic, as they actually lose 3% accuracy per arrow fired (Fortunately the first arrow shot doesn't suffer an accuracy penalty), but that takes place during the accuracy formula, not the end of it. This means it can actually take a while for Bow Rogues to start missing due to their high SPD stat. Though thankfully the accuracy multiplier can't go below 50%, which will be hit after 17 shots. But you really should have used Seeker before that happens.

Also I was wrong about EX. It doesn't bypass the accuracy check (It does in the later games) but it doubles your accuracy instead. Granted in most cases that's enough to gain surefire accuracy, but there are a few cases where that can still miss.

Blind on the other hand, reduces your accuracy by a whopping 70%!

To give an example in action, take the update with the Dragonflies, those enemies with 200 SPD. It turns out that Ark, the most accurate of the bunch (before firing arrows would tank her accuracy.) had 69% chance of hitting one. With poor Stella having a 67% chance.

There's no upper cap to accuracy. (Though that doesn't really matter as RNG rolls out of 100 for it.) However accuracy can't go lower than 1%. Thanks? Though I can't think of any situation where you could possibly reach that as that would require you to be severely underleveled and blind.

Oh and for the record, no ailment in 7th Dragon affects accuracy or evasion. While this mechanic exists in EO, it's not something that exists in this series. Not that there's not really a lot of reason to utilize such a thing here. Unlike the EO series, everyone starts with 100% accuracy by default. Big inaccurate attacks don't exist in this game.

As for the "almost", well there's actually one thing in the formula that can influence the target's SPD but I have no idea what it is. Like I just said, ailments have absolutely no effect. Buffs and debuffs already apply their effects to the stats before it even gets used in the formulas. So for now I'm chalking it up to "unused unless something surprises me later."
Last edited by Araxxor on Sun Jun 06, 2021 6:10 am, edited 1 time in total.

User avatar
More sidequesting and dealing with a troubled federation.

ImageImage

User avatar
Okay I did a bit more digging and I'm going to have to make a correction to my ailment findings. Unfortunately the effects of EX are far less powerful than I stated. All using EX on ailments does is just essentially give you 2 attempts at landing the ailment in 1 turn. My previous findings were due to a result of a series of lucky coincidences and faulty assumptions.

The stuff with the bad luck mitigation was true though.
And there's a calculation glitch because of course there is. For some reason if the infliction rate reaches a multiple of 100% exactly, the game kind of goes nuts and randomly adds or subtracts 1% or 2% from the final infliction rate. I don't know why this happens.
Turns out the game just aggressively rounds down whenever it can. Basically assume that the game utterly despises decimals whenever it comes to combat math and will annihilate them on sight.

Guarding multiplies the infliction rate by 90%.

I did discover one other oddity though. If the attacker is trying to inflict instant death and they are 20 or more levels above the target, their infliction rate is doubled. I'm not sure why this is there, but it is. It doesn't affect Purge or Perfect Dark's LIFE thresholds.

Also dug out escape rates, which is also pretty simple.

If the party member trying to run is on their 5th (or higher) escape attempt, the escape will automatically succeed.

Otherwise:
Escape Rate = ((Escape Attempts * 10) + 30 * (Player Level + Player SPD)) / (Enemies' average Level + Enemies' average SPD)
If EX is active, multiply the Escape Rate by 2.
If a Rogue used Ready to Run, multiply the Escape Rate by 2.
Escape rate is then capped between 20% and 100%.
Roll a number between 0 and 99. If the result less than the calculated number, the escape succeeds.

Basically with dead even stats, you have a base 30% chance to run, with each failed escape attempt adding on 10% to this chance. This is then heavily influenced by your level and SPD as it is directly proportional to any living enemies' average level and speed stats. This actually makes it so that you're pretty unlikely to run from stronger encounters, and the 30% extra damage you take trying to run won't help matters. Using Ready to Run will double your escape rates (stacks with EX to quadruple escape rates) and get rid of that extra damage.

Also an utterly bizarre finding that won't affect anyone's playing experiences, and is just some programming related oddity. For some reason the game runs the escape formula calculation 12 times for each party member trying to escape. Said results are never different between all 12 calculations, so I have no idea what the hell is going on there aside from wasting computer cycles.

love escape commands that are actively worse in multiple ways against the things you need to run from

e: I mean this doesn't sound FF3o bad from what I remember of that game's escape command but yikes

User avatar
While doing some research for the Knight writeup, I've discovered... quite a few things.

Image

Congratulations Buront, you've now graduated to DPS.

Anyways, it's been a while since we've had an official game mechanics update. So here's one on the enemy targeting systems. It'll be a bit relevant for one of the Knight's skills in the class showcase that's coming soon.

Game Mechanics: Aggro

When an enemy decides to attack, it has to decide who will be on the receiving end of it. There’s a lot of steps involved in this process, and this update will be covering just how enemy aggro works in this game.

Enemies have an AI routine they follow to determine how to behave. Each enemy has its own individual routine, and their AI also tells them who they should be targeting when performing certain actions. While the action the enemy takes is determined at the start of the turn after all speed calculations are finished, who they target is determined the moment it’s their turn.

Attacks that hit multiple times but can hit different party members during the entire attack will have the aggro determined for each hit.

The first thing checked for is if the enemy should go after a specific party member, such as one with the highest amount of current LIFE. If that’s the case, they’ll always target that party member, no questions asked, and they can’t be persuaded otherwise. Certain attacks are always hard-coded to go after a specific target no matter what, like everyone in the front row.

That won’t always be the case and most of the time enemies will go after a semi-random party member. This is the part of aggro calculations that’s the most involved, as this is pretty much what this entire update is about. Some general rules to keep in mind is that enemies will try to go after the party member with the highest amount of current LIFE and they like to target the front row more often than not. When checking for current LIFE, they check the raw number, not a percentage of it. This means that a party member with 100/200 LIFE will be targeted more often than a party member with 50/50 LIFE.

When an enemy decides to go after a random target, they first decide which row they want to go after. The chances of this depends on the enemy’s AI. More often than not, this is weighted in favor of the front row. Once an enemy has decided which row to target, they cannot be persuaded otherwise outside of one case.

After the enemy decided on a row to target, the game then checks to see if the Provoke buff is active on anyone in that row. Provoke is a skill that Knights and Princesses have access to. For the Knight, it gives a 35% to 70% chance of forcing the enemy to go after them depending on the skill level. And for the Princess, the chance is 35% to 60% instead. If this chance succeeds, that party member is targeted and that’s the end of that.

In the case of multiple Provoke checks succeeding in a row, the enemy just randomly decides which party member they wish to go after among the ones that have the Provoke buff. However, because Provoke cannot influence which row gets targeted, this means that Provoke does absolutely nothing if the party member with Provoke active is the only person in that row.

If the checks fail or no one has Provoke active, the game then checks to see if the Hide buff is active in the chosen row. Hide is a skill exclusive to Rogues. What it does is grant a 30% to 50% chance to delete the Rogue from the enemy’s aggro calculations, and shrinks the row count by 1 in said calculations.

Unlike with Provoke, multiple Hide checks in the same row cannot succeed at once. The moment one Hide check succeeds, the game will immediately move onto the next step. The same also goes if all Hide checks fail, or the Hide buff simply isn’t active.

However, remember what I said about shrinking the row count by 1? If the Rogue is alone in that row, that will cause the enemy to think there are 0 party members in that row if their Hide checks succeeds. In that case, the enemy will then target the other row and repeat all these procedures so far. That's the only possible way to force an enemy to change their mind about what row they go after.

But what if you only have 1 Rogue on each row and both of their Hide checks succeed? In that case, the enemy will think there are 0 party members in the battle, and will just randomly go after any party member, overriding any successful Hide checks.

If the Hide checks fail or no one has a Hide buff active, the game will then sort the current LIFE stats among all valid targets and ranks the party members accordingly. With party members with higher amounts of current LIFE being more likely to be targeted. If multiple party members have the exact same amounts of current LIFE, then they’re sorted randomly.

If 2 party members are in that row:
-60% chance to target the party member with the highest current LIFE.
-40% chance to target the party member with the lowest current LIFE.

If 3 party members are in that row:
-60% chance to target the party member with the highest current LIFE.
-30% chance to target the party member with the 2nd highest current LIFE.
-10% chance to target the party member with the lowest current LIFE.

If 4 party members are in that row:
-50% chance to target the party member with the highest current LIFE.
-25% chance to target the party member with the 2nd highest current LIFE.
-15% chance to target the party member with the 3rd highest current LIFE.
-10% chance to target the party member with the lowest current LIFE.

If there's only 1 party member in that row... they obviously get targeted. The targeting routine is then terminated, and the game goes on to other combat related calculations, such as accuracy and damage.

The reason the game handles things this way is to make it so that party members with lower amounts of LIFE are less likely to be ganged up on, and this helps spread out the damage your party takes more since the party member with the highest current LIFE will constantly change.

Incidentally this isn’t possible in normal play, but if you somehow cause the enemy to target an invalid party member after everything is said and done, the attack will be ignored by everyone and disappear into thin air.

Araxxor wrote:
Wed Jun 09, 2021 9:07 am
However, remember what I said about shrinking the row count by 1? If the Rogue is alone in that row, that will cause the enemy to think there are 0 party members in that row if their Hide checks succeeds. In that case, the enemy will then target the other row and repeat all these procedures so far. That's the only possible way to force an enemy to change their mind about what row they go after.

But what if you only have 1 Rogue on each row and both of their Hide checks succeed? In that case, the enemy will think there are 0 party members in the battle, and will just randomly go after any party member, overriding any successful Hide checks.
So much for theorhetical Rogue SCC cheese. Not that the rates on Hide would make that very reliable anyways but still.

User avatar
"What exactly are Knights good at?" "Everything."

Image

So long as you don't include "having mana" in that everything I guess. Still, imagine defensive classes being able to make a contribution when you don't need to be defending, why couldn't EO2 Protectors/EO3 Hoplites be more like that.

User avatar
Been doing some more digging through the game, and glad I did cause it turns out I missed quite a bit. For one thing, there's no "enemy type", it's a value I misread as something else. It's actually a series of flags that give the enemy in question additional benefits... or penalties. And that's basically 31 updates I have to comb through and correct later. :shepface: Oh well, at least going forward the info should be correct and I can make updates without worry. Maybe.

Boss?: Only bosses have this. Function is unknown.

Has a Shadow?: Checks if the enemy's sprite displays a shadow underneath it or not.

Acts Twice Per Turn?: Allows the enemy to act 2 times in 1 turn if enabled. Only 1 boss in the entire game has this flag. (And it's not even a dragon.)

Disables Escape?: Prevents the escape option from succeeding if enabled. If all enemies with this flag are dead, escape attempts can succeed again. Escape attempts failed in this manner do not count as failed escapes.

Small?: Microanatomy can activate against enemies with this flag enabled.

Large?: Macroanatomy can activate against enemies with this flag enabled.

Incidentally there's only one random encounter that counts as Large. Most dragons and bosses actually fall under this so Macroanatomy can activate against them. That being said the conditions to activate that skill can seem... inconsistent. Generally by large they mean "fills up the entire screen." And even then some averagely large sprites count as large enemies, while other sprites of the same size actually count as medium sized and won't activate either skill.

Dragon?: Checked for under 2 conditions: If the battle was not started through a random encounter and the enemy is a dragon, a 0.95x to 1.3x multiplier is applied to their damage and ailment multipliers. This depends on how much of the surrounding Bloom outside of the dungeon or area on the world map is gone.

The other condition is if a monster is joining an on going battle. If the monster is a dragon, the game will say "Oh no! A Dragon!!" Otherwise, the game will instead say "A new monster jumped in!"

Death Resistant?: Prevents Instant Death effects from activating until the enemy's LIFE is below 10%. Once that condition is fulfilled, Instant Death inflictions are calculated normally. Only bosses and dragons have this flag.

I also found the encounter tables and how encounters work. Which also relates to an odd bug no one had any explanation for.



So each encounter formation is grabbed into a small little table and is assigned a weight on how often you'll be running into that formation on the assigned tiles. You'd think all those encounters would have an equal chance of being chosen, right? Wrong. Instead of rolling out of 250, the game rolls for a number out of a fixed 255. Fortunately the game has a failsafe for this. If the RNG rolls a number that surpasses all the weighted values, it just defaults to the last encounter in the list, making that encounter typically the most common one you'll see. (Also on a related note, the game also accepts 0 from the RNG as a valid input, meaning that the first encounter has +1 added to its weight, making it slightly more common.)

That relates to this aforementioned bug:
blizzardvizard wrote: I ran into one. No overworld sprite, just in a regular random encounter. It was a Triceratops, incidentally. I did have frameskip turned on at the time, though, so maybe it had to do with that RNG screwage thing you mentioned.


See normally dragons aren't supposed to be loaded up into a random encounter table. They're only supposed to be called when you run into a dragon on the map. But a mistake was made here that dragged those 2 dragons into the Rorakka Cavern encounter table on the Kazan entrance screen.

Fortunately they have a weight of 0 so they shouldn't be encountered... except that's not what happens. Due to the "extra RNG" oddity I mentioned earlier and that said results default to the last encounter, that actually means the Triceratop has a 5/256 chance to be encountered (1 in 51.2 encounters or a 1.9~% chance.) Making it rare but not outright impossible to run into.

You'll never see a Gryphonus in a random battle on that screen though.

Also I found the gathering node data at long last, so you can see those in the updates from now on. (Not that gathering is exactly much of an interesting or helpful mechanic in 7th Dragon.)

So how about that one Ore Node on Mt. Jomaron that has a chance to give out Dragon Eggs, huh? I'm sure more sources of EX replenishment will always be welcome-
-Dragon Egg: 1%
-Tamafite: 60%
-Aquamarine: 39%
Um.

Erm.

Yeah please don't farm for these from that node.

User avatar
Are you all ready for yet another surprise mechanic? While fiddling around with things I noticed something was off with one of my assumptions from before which led to new discoveries. First, the basic rundown.
Every time you exit a battle, or enter a new location that has random encounters, a counter is set to 100. Each tile you step on in an area subtracts a number from 0 to 6 (It’s random, but certain tiles have certain ranges that could possibly be subtracted.) When the number goes past 0, you get into a battle. Oh and if said number dips past a certain threshold, the petals on the flower fill up. The counter’s numbers corresponds to these number of petals:

100: No petals
99: 1 petal
89: 2 petals
79: 3 petals
69: 4 petals
59: 5 petals
49: 6 petals
39: 7 petals
29: 8 petals
19: Orange petals
Yeah that's completely and utterly wrong. This is actually describing the percentage of how much the encounter meter is filled. The encounter rate actually works differently from this.

What the game actually does is generate a random number from 4000 to 5999 and sets that as your encounter meter. Each tile you step on subtracts a certain number from this.

Most overworld tiles subtracts 180. Overworld forest tiles on the other hand, subtracts 300. Tiles in dungeons are a little more specified, but generally they'll either subtract nothing, 80, or 130. If you're playing the USA patch, just halve those numbers.

Now here's where the actual surprise mechanic comes in.
Araxxor wrote: Oh yes, Pokeytax, I believe I discovered a bug with the USA patch. In some odd circumstances (No idea when exactly this triggers, but it seems to be consistent with a fresh load?) Whenever you teleport using a portal, or save your game at a portal, (Simply interacting with the portal or save location and then cancelling will not trigger the bug), then go back to the overworld, the encounter rate goes back to the original version's levels. (Address of the encounter meter is located at 0x0217C146, in case you didn't know.) This lasts until you get into a battle, or just enter a new location, at which point the encounter rate goes back to the USA patch's intended values. Bloom damage appears to be functioning normally, at the very least.

For the rest of you that are playing with the patch, this bug can be circumvented by just simply reentering the portal location and exiting again. The encounter rates go back to normal then.
First things first, the address stated is for the visual of the encounter meter and is actually irrelevant. The actual address for the encounter rate is located at 0x02188A5C. (And is also a 2 byte value, not a 1 byte value like with the other address.)

Anyways, this is actually not a bug! It is a surprise from the game itself. You see, each time the game refreshes the encounter rate, it has a 5% chance to sucker punch you and set the encounter rate to a mere 1500! Meaning that you'll get into an encounter ultra fast. On the other hand, there's is another 5% chance that the game will decide to be generous and set the encounter rate to 10000. Meaning that in those cases, it can take twice as long to get into an encounter.

The RNG used here for the encounter rate is not frame based and is basically static until something advances it, which explains why I constantly got sucker punched after a fresh load. Pokeytax's patch works perfectly fine. It was actually the game itself silently playing a practical joke on me.

My goodness, that is some obscure behavior that's easy to confuse with a bug caused by certain actions by association. Not sure why anyone would implement that in the first place but so it goes.

Post Reply