lushen124 / Universal-FE-Randomizer

Properly universal this time.
MIT License
98 stars 28 forks source link

FE7: Character not matching bases to Class? #106

Closed Zswords closed 5 years ago

Zswords commented 5 years ago

Kinda what it says on the Tin, but to take it a little deeper: I've been doing a couple generations, and run into that, well, characters are randomizing their class, but even the class half of their bases isn't adjusting to match: This Lyn has, completely base states when Pirate Lyn should have 5 more Con and 5 Less raw speed.

Test Gen 5_01

Generation settings were:

image

lushen124 commented 5 years ago

This is actually expected behavior. If randomizing bases are not enabled, characters will only change their class. Their bases and CON will remain the same as if they didn't change class.

Zswords commented 5 years ago

I see, so the best way to say, minimize the stat rando itself, would be Delta Rando with a variance of 1? (Cause I noticed Zero is not an option.) This mostly matters for Con, where say, Florina the Fighter is just, unusable because 4 Con can't really, into Axes?

I've also set minimum Con to 4 and had Lyn roll 3's but I'll worry more about that later.

EDIT: Hokay, did a regeneration (From an unspoiled rom) and my Kent, who rolled Cleric, has more con and def than a cleric with a variability of '1' should have with my understanding of Personal bases, unless Serenes' information on Class bases doesn't match the codes. (I know the personal bases page is their recruitment bases after class+personal) with your comments in mind, and he rolled far more def and con than a cleric should, picture below. Now, one thought I had, is that I AM running Lyn Hard, and not jumping to Hector Hard, would that mess with the stat lines any so that say, anyone who generates in Lyn uses their normal go to, and then transitions over when bringing over to Hector?

image

gave me a Kent with:

8th seed test_01

lushen124 commented 5 years ago

Specifically for CON, I've recently changed the logic for that. #88 was a suggestion that was pitched, and I agreed that it probably made for a better experience. The change can be found in #109 and will be ready for the next release.

lushen124 commented 5 years ago

Kent specifically has a CON bonus of 0 naturally, so his 9 CON is from the fact that he normally was a Cavalier, which has a base CON of 9.

As a cleric, under the old logic, he would retain his 9 CON when changing classes by gaining 5 personal CON to account for Cleric's base 4 CON. Under the new logic, he would retain his personal con of 0 and end up with an effective CON of 4.

Zswords commented 5 years ago

Yep, that's what it was looking like and I figured, so that's being addressed which I approve. ^^

So what about his other bases? As far as I can tell, Kent's personal base is -1, so unless he rolled a 0 or -1, and freaked out and used his post class base with a +1 personal instead, (Kent normally starts with 5 Def as a Cav, who's base is 6. Cleric has 0. Kent should have, anywhere from -2 to 0 Def as a Cleric with Delta +/-1.)

lushen124 commented 5 years ago

The logic I listed above, I only applied to CON for the time being. For all other stats, it carries over his final stats as is.

In the case of DEF, Kent has -1 personal DEF and Cavalier has 6 DEF, so in vanilla, he'd have 5 DEF. Unlike CON, all other stats remain using the old logic, which is to transfer the final value as is. In the case of Cleric, which has 0 DEF, his personal DEF is adjusted to +5, resulting in a final DEF of 5 DEF. Since you applied a Delta +/- 1, your Kent got a +1 DEF bonus, which bumps it up to 6.

Zswords commented 5 years ago

Okay, Thanks for the clarification, so I was misunderstanding what the Randomizer was INTENDED to do with personal bases, the tooltip in the program is a little misleading then, it says 'Randomizes the base stat offsets, Relative to their class.' Which I interpreted as 'Randomizes their personal bases, then applies the class base.'

lushen124 commented 5 years ago

The options for randomizing bases does exactly that: it randomizes personal bases (by redistribution or by delta). It only modifies personal bases, which then have the class bases applied on top of it.

What I actually changed in the above pull request and where confusion comes from is when classes are randomized, as I never explicitly state how stats are transferred over in that case. Stats are automatically adjusted to make sure no changes in stats occur. So somebody with 10 STR as a fighter, will keep 10 STR, even if they're now a pegasus knight (behind the scenes, their personal bases were adjusted to keep that true). This used to be true for CON, but is no longer true with the most recent change.

Zswords commented 5 years ago

Ohh, okay, how difficult would it be to make the Con change a setting for base stats as well? Keeping normal bases is nice and all, but I find one of the things I look forward to the most with randomizer is say, Myrm Oswin, sure he starts really frail, but then Oswin's growths on Myrms bases makes him a balanced then just powerhouse of a unit, kinda potential thing.

lushen124 commented 5 years ago

We can probably formalize that as an option for how to transfer base stats when randomizing classes. The options would be:

And if we were feeling adventurous:

Zswords commented 5 years ago

That was, actually something I was considering suggesting as well, I just didn't know how viable it was to add. An example to make sure we're on the same page would be: Randomized Knight Fiona (not that that can happen cause Class Logic) would have primarily strength, HP, and Def, with very low speed, even though Fiona has relatively high base speed joining later on as a mid level Pegasus.

lushen124 commented 5 years ago

Something along those lines. I assume you meant Fiora and not Fiona. :)

It would basically use the class bases to determine what the highest stat should be and maps the character's usual stats to the same spread. So, to take your example:

Fiora HP STR SKL SPD DEF RES LCK
Fiora's Base Stats 21 8 11 13 6 7 6
Knight Class Bases 17 5 2 0 9 0 -
Knight Fiora 21 11 8 6 13 7 6

Luck transfers directly, HP will probably also transfer directly since it's usually the highest. The other stats are ordered base on the class and transferred from highest to lowest.

Zswords commented 5 years ago

That's great! Though uh, one thing I'm not sure I'm following along is in that transition process for a run actually got to Priscilla, which I was -currently- writing down as a one off but it's getting a might too consistent, is the 'minimum Con Value' still not, doing it's thing:

image

EDIT: uploaded the wrong Priscilla screenshot.

lushen124 commented 5 years ago

I haven't actually made a new build with the fix yet. :) It'll be coming in the next release. It's expected in about a week. (I generally go about every 2 weeks release cycle, though that might be slowing down soon as I start looking into FE9).

Zswords commented 5 years ago

I know, this was with the previous one for going forward, I have minimum con set to 4 but both Priscilla and guy ended up with 2.

lushen124 commented 5 years ago

Oh. Hmm... that is odd. I’ll take a look. Thanks.

Sent with GitHawk