Skip to content

Some problems with the included Dizzy systemย #561

Closed

Description

@potsmugen

These aren't so much problems with the engine itself as they are with Dizzy.zss, but:

1 - The Dizzy state (default 5300) needs a HitFallReset. If the move that stuns the opponent is a knockdown, the first hit after he's dizzy will also knock down.

2 - If you change the Default.LifeToDizzyPointsMul constant to anything but 0, redizzy combos become possible. That is, hitting an opponent that is already dizzy will still do stun damage.

3 - If you juggle the opponent just as he's stunned, he will skip the dizzy state when he lands.

4 - The dizzy state should be vulnerable to throws, somehow. Most chars miss since it's Movetype=H.

5 - If you hit the opponent while his dizzy points are regenerating, your attack will do slightly less stun damage than it's supposed to, since the points still regenerate for 1 frame when he's hit.

6 - TargetLifeAdd is currently unaffected by Default.LifeToDizzyPointsMul. Also this is more of a feature request, but there could be a parameter so you could make this Sctrl add dizzy points or not. Either a flag like "Kill", or a multiplier that defaults to said constant.

7 - Not a bug, but in most games the opponent is invulnerable immediately once DizzyPoints = 0 and until he get ups. I think this should be the default Ikemen behaviour.

8 - Another feature request that I should post on its own but I might as well leave it here: there could be an AssertSpecial flag to disable Dizzy Points damage (as well as Guard Points for that matter). As in, once asserted, none of your attacks deal stun damage to the opponent.

I think that's it.

Activity

  1. added a commit that references this issue on Jun 12, 2022
  2. K4thos commented on Jun 12, 2022

    @K4thos
    Member

    1 - I'm not sure how to do it from within cns/zss code. Any ideas?
    2 - Fixed. hitDef and targetLifeAdd now skips dizzy points applying, if target is already dizzy
    4 - I've simply changed statdef 5300 moveType from U to I. It shouldn't have negative consequences unless I'm missing something?
    6 - Added targetLifeAdd sctrl dizzy parameter: 1 enables damage to dizzy points conversion support using Default.LifeToDizzyPointsMul const (true by default).
    8 - Godd idea. Added both requested AssertSpecial flags. And with this change I was able to assign Default.LifeToDizzyPointsMul in common.const instead of relying on receivedDamage trigger (nodizzypoints is now asserted in dizzy.zss when hitDefAttr = SCA, HA, so workaround to achieve it is not needed)

    1, 3, 5, 7 - I think this stuff can be handled by editing dizzy.zss file but I'm afraid I don't have enough experience with character creation to implement such changes without introducing regressions. Any help with it would be appreciated. Feel free to edit dizzy.zss, if you like, all of the proposed changes would be internalized.

  3. potsmugen commented on Jun 12, 2022

    @potsmugen
    ContributorAuthor

    1 - My bad. I meant a HitFallSet with value = 0

    2 - The important thing here is also that this behaviour is only reset once the dizzy victim can act again. I forgot to specify that

    4 - That works but the combo counter will then reset while the character is dizzy. Unless you apply the Dizzy flag sooner, which is what I did below
    EDIT: Actually that doesn't seem to be working, but you get the idea.

    6 and 8 - Excellent! Thanks. Although, if I can make another suggestion, "nodizzypoints" sounds like it disables the player from getting dizzy instead of causing dizzy. Maybe "nodizzypointsdamage" or something of the sort?

    1, 3, 5, 7 - I'm not quite used to the ZSS language but I gave it a shot. Every change should be commented.
    dizzy.zip

  4. added a commit that references this issue on Jun 12, 2022
  5. K4thos commented on Jun 12, 2022

    @K4thos
    Member

    Thanks! Implemented your changes to latest version of zss file, renamed flags, fixed the combo counter, added more comments. I've moved dizzy reset back to -2 since dizzy points staying at 0 for the duration of dizzy is intended (this way stunbar can show custom anim for dizzy). Please let me know if you still find some oddities with it.

  6. potsmugen commented on Jun 14, 2022

    @potsmugen
    ContributorAuthor

    I will play around with it a bit more when the next release comes out, but:

    	# Hyper attacks don't affect dizzy points
    	ignoreHitPause if hitDefAttr = SCA, HA {
    		assertSpecial{flag: nodizzypointsdamage}
    

    I think this will cause issues when you do want hyper attacks to deal stun damage.

    One other thing is I'm wondering whether the NotHitBy should be both in State -2 and the Dizzy states themselves, afterall. The reason being, for instance, my Ryu's Denjin Hadouken causes Dizzy even if that feature is turned off, and what I did was just send the target into the Dizzy.zss states. In that case (Dizzy option off) I think P2 will be unaffected by the State -2 code.

  7. added a commit that references this issue on Jun 14, 2022
  8. K4thos commented on Jun 14, 2022

    @K4thos
    Member
    • added notHitBy to dizzy states
    • new constant: Super.LifeToDizzyPointsMul (works like Default.LifeToDizzyPointsMul, but for super moves)

    With this constant (default value = 0) calling assertSpecial flag is not needed. Super moves with actual dizzypoints values assigned in HitDef will do intended dizzy damage.

  9. potsmugen commented on Jun 14, 2022

    @potsmugen
    ContributorAuthor

    That does sound like a better solution. Both simple and flexible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions