Users browsing this thread: 1 Guest(s)
Patch: Doggy Miss Bugfix

#7
Posts: 200
Threads: 1
Thanks Received: 10
Thanks Given: 0
Joined: Oct 2015
Reputation: 18
Status
None
Bropedio: thanks for the reply.
   
Quote:If we wanted to go the other direction, and make the existing animation selection routine more intuitive, I think I would lower Interceptor/Golem's evasion chance, and apply it directly to the target's Evade during the primary evasion calculation lower in the hit determination routine. That way, the pool of available evade sources would all be handled similarly, which would better explain why they are randomly interchangeable.

ah, so you'd be "flattening" it out some, putting the guardians on the same layer of protection as gear.

i do think it's possible to accomplish more balanced accreditation than both vanilla and your patch under the existing system of multiple layers (of non-fixed conceptual/intended order, in my view).  going back to the four categories in my first post:

Quote:that is, if Protection A can randomly block 25% of attacks, and Protection B can randomly block 25% of attacks, somebody with both protections in place actually has four categories of dodges (or lack thereof):
i. Nothing blocks the attack (9/16)
ii. Only Protection A blocks the attack (3/16)
iii. Only Protection B blocks the attack (3/16)
iv. Both Protection A and B would've blocked the attack (1/16)

suppose equipment is Protection A, and Dog or Golem is Protection B (with their own block percentages, of course).

my goals here in balancing are to:
1. not let the constancy of the $3CE4 flags lump Category iii into Category iv.
YET ALSO:
2. not let the first-checked-in-code nature of Protection B pull Category iv into Category iii.

we do not need to worry about Category ii getting pulled into (iv), because Golem and Dog block flags are only set situationally.

{Warning: following paragraph matters less than the others, and edits have ballooned it, so give it low priority until everything else makes sense.}
apportionment of credit within Category iv matters some, but it's relatively minor once we've dealt with Goal #1.  [EDIT: the fairest way is probably a simple coin flip for the broader, initial choice between guardians and gear, as opposed to the weighted way i'd implied.  once gear is chosen, then the random pooling is employed.  our mere detection of Category iv tells us that Dog/Golem and equipment/evasion were both good enough to block a given attack -- regardless of what a protection method's initial block chance was.  by this point, neither has a higher claim to legitimacy than the other, so a coin flip makes sense.  if we edited Dog's initial block chance from 50% to 10%, for instance, that would already be reflected in the sizes of Categories iii and iv being smaller; further penalization (or rewarding) within Category iv would be nonsensical double-counting.  now, if we want to show limited deference to Square's original code without a return to pillaging Category iii, we *could* keep the random "pool" method in place only as a Cat iv tiebreaker.  but it carries a representation issue, in that having more animation-eligible equipment types can "crowd out" Dog or Golem.  however, it's not so bad for Dog to be underrepresented within (iv), given a sword (for example) might be routinely underrepresented relative to a shield that has a lower Evade boost.  note that the below code does NOT yet reflect the coin flip approach.]

how to do Goals #1 and 2, and get crediting more in line with the protection layers' respective blocking probabilities?  we need to know the chances that an Esper/Pooch -blocked attack would have hit or missed on its own.  the most direct way is simply to simulate this by running Function C2/22FB!  it's a good-sized function and thus not particularly quick, but we're still keeping things to one call per execution of Function C2/220D.

the main issue, rather, is that C2/22FB sometimes returns its Hit/Miss result in Carry Flag, but not always; nor does it always return to its point of invocation.  instead, it has *3* places in C2/220D that it can branch back to.  obnoxious.

but let's pretend for sake of discussion that this function has been cleaned up to be more modular, and we can JSR the thing like a normal routine.

here is my attempt at a "fairer credit" beginning and middle to Function C2/23BF ("Determine miss animation"):

http://assassin17.brinkster.net/forum-po...p-rev2.txt

it adds 18 bytes.

because Image-induced miss is a special case relative to usual Hit/Miss as block animations are concerned, we need to duplicate the status' check here (or our overhauled Hypothetical C2/22FB can return 1 of 3 results; where's a good Trinary flag when you need one?!).  however, i do believe that despite other checks (Sleep/Petrify/Freeze/Stop, hits at target back, 255 hit rate, Retort) being performed first in C2/22FB, we can avoid duplicating them here, due to the flow of logic (e.g. the situationality of my Image check being reached in the first place).
[EDIT: this code has Image defer entirely to Dog/Golem within Category iv, in the same way that animation-less equipment is already pushed off-stage by even a single piece of gear with an animation flag.  however, i probably went overboard; Image's plain "Miss" regularly supersedes all gear in vanilla, so having it be trounced by Interceptor/Esper doesn't really make sense.  good thing this section is theoretical code that won't assemble anyway. ;P
another TODO: incorporate Zombie/Clear/Magitek check into code.]

---------------

read the rest as a separate post; the board software likes to merge these things.  it's a different patch with (currently) distinct goals.

Quote:a more precise and nuanced way than a simple random roll would probably check the Evade stats of all gear that gets put into the block animations pool, and scale the occurrence of their animations accordingly.  however, such a function would be closer to 1200 bytes, and the source of many migraines. ;P

bah, it's only 1/5 of that.  and a couple tension headaches at worst.  i'm too dramatic sometimes. Tongue

yes, i got bored and coded the SOB:

http://assassin17.brinkster.net/forum-po...t-rev2.asm
http://assassin17.brinkster.net/forum-po...quAnim.zip  (for headered ROM)

besides accomplishing the above quote, the other major change is that animation-less gear (along with base character Evade/MBlock) now has a seat at the table!  if you have an elite item that contributes 30% evasion but has no animation attached to it, why should its flashier yet less evasive neighbors get all the credit?!  likewise for a character who gets much of their Evade au naturel (e.g. Shadow).

so the patch scales animation occurrences (or lack thereof) by the total Evasions/MBlocks of gear with each animation, and the total of animation-less gear and base character Evade/MBlock.

once the evasion/gear route is chosen over Interceptor or the Esper, $3CE4 is never even looked at again; i evaluate from the ground up.

this patch doesn't alter Dog/Golem at all; it's INTRA-evasion crediting.

and note that the _initial_ choice between Dog/Golem and equipment animations *in general* has not been changed to reflect plain "Miss" being a choice now.  it still uses the same pool of equally-weighted animations in selecting a path.   suppose you have an active Dog block, and a graphically eligible sword and shield: vanilla gives 1/3 chance to each (so 2/3 to equipment).  to best work within that system while incorporating my change, i should probably reserve 3/4 overall chance for the evasion-based animations.  while that'd compound the existing issue of under-crediting Dog/Golem, it's probably acceptable here because:
1) remedying that issue is outside the scope of this particular patch.
2) it reflects the patch's increased stature for the plain "Miss".

yet i'm not in a hurry to change it, for whatever reason.

also, note that if there was an Evade/MBlock-boosting weapon that broke in the middle of a multi-strike turn, this patch would fail to reflect the lowered Evade stat or the loss of the weapon's block animation.  it's hard to care, but i'm obligated to mention it. Tongue
Quote  
[-] The following 1 user says Thank You to assassin for this post:
  • Warrax (11-20-2019)



Messages In This Thread
Patch: Doggy Miss Bugfix - by Bropedio - 11-08-2019, 10:57 PM
RE: Patch: Doggy Miss Bugfix - by madsiur - 11-09-2019, 03:07 PM
RE: Patch: Doggy Miss Bugfix - by assassin - 11-10-2019, 01:07 AM
RE: Patch: Doggy Miss Bugfix - by Bropedio - 11-10-2019, 09:00 AM
RE: Patch: Doggy Miss Bugfix - by assassin - 11-19-2019, 05:47 AM
RE: Patch: Doggy Miss Bugfix - by seibaby - 11-10-2019, 12:04 PM
RE: Patch: Doggy Miss Bugfix - by assassin - 11-10-2019, 01:31 PM
RE: Patch: Doggy Miss Bugfix - by Imzogelmo - 02-23-2020, 10:52 AM

Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite