Skip to content
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

Dissolve for idle disp and more #6986

Merged
merged 16 commits into from
Apr 1, 2021

Conversation

Booplicate
Copy link
Member

@Booplicate Booplicate commented Feb 12, 2021

I wanted to add dissolves for the idle disp from the get go, but didn't have time for it, so I'm doing it now. With these changes (and ideally with an r7 upgrade) all Monika's sprites will use a nice, smooth transition.

Changes:

  • Dissolve transition for Monika's idle displayable. The timings are: 0.25 sec for a pose change, 0.1 sec for an exp change.
  • New displayables to handle blinking, winks, and tears. That's because the old ATL were clunky and had numerous bugs. The blinking timings are randomized now.
  • Dissolve transitions for blinking, winks, and tears. The duration for all of them is 0.1 sec (for many of those we can't use more than that, although we could use different durations if we wanted to, leaving this to the testers).
  • Some methods of MASMoniIdleDisp got the new skip_dissolve parameter. It allows us to skip the transition during the next exp change.
  • Test cases for the new displayables.
  • A displayable to handle following sprites. Supports right/left variants, has commented code for up/down variants too. Also utilises Dissolves and is more optimized than the current ConditionSwitch. NOTE: uses a method from Windowreacts but they're implemented how they should've been from the start #7006.

Fixes:

  • Fixed a bug with incorrect render size of MASMonikaRender.
  • Fixed a bug with the broken wink ATL (because I deprecated it lol).
  • We don't use scene in the spaceroom label anymore. RenPy has a bug with images being used in both old_widget and new_widget of a transform (Dissolve in this case). Since scene is hiding images, it adds them to old_widget, then we're showing them, it adds them to new_widget. Because of that the images are getting st and at for both states at once.

Testing:

  • Verify the spaceroom looks good (at startup, during idle, during different transitions).
  • Check out the new test cases, you can use them for testing.
  • Verify the transitions look good. Not too fast, not too slow, no visual bugs.
  • Verify blinking, winks, and streaming tears look good both when used in the idle disp and when showen directly.
  • Verify the transition from idle to a topic and from a topic back to idle (ideally w/ and w/o forcing an exp at the end) looks good (no seizures or weird movements).
  • Verify the top of Monika's head doesn't disappear anymore.
  • Verify the following sprites look good. Check the transition from a following to non-following and vice versa.

@Booplicate Booplicate added awaiting testing code needs to be tested awaiting code review someone needs to check for syntax/logic/indentation errors labels Feb 12, 2021
@Booplicate Booplicate added this to the Next Release milestone Feb 12, 2021
@Booplicate Booplicate marked this pull request as draft February 15, 2021 14:49
@Booplicate Booplicate marked this pull request as ready for review February 17, 2021 14:52
@ThePotatoGuy ThePotatoGuy modified the milestones: 0.12.1, Next Release Feb 20, 2021
@Booplicate Booplicate requested a review from ThePotatoGuy March 8, 2021 21:29
Copy link
Member

@ThePotatoGuy ThePotatoGuy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

got this traceback while running but pretty sure its related to something else.

While running game code:
  File "game/script-ch30.rpy", line 1513, in script
    $ mas_randchat.wait()
  File "game/script-ch30.rpy", line 1513, in <module>
    $ mas_randchat.wait()
  File "game/definitions.rpy", line 8273, in wait
    renpy.pause(WAITING_TIME, hard=True)
  File "game/sprite-chart.rpy", line 8205, in render
    img_render = renpy.render(self.current_img, width, height, self.current_st, at)
  File "game/sprite-chart.rpy", line 8753, in render
    mouse_pos = store.mas_windowutils.getMousePosRelative()
AttributeError: 'StoreModule' object has no attribute 'getMousePosRelative'

@Booplicate
Copy link
Member Author

AttributeError: 'StoreModule' object has no attribute 'getMousePosRelative'

The PR that adds that method hasn't been merged yet. For testing I just chucked it into a temp rpy. This shouldn't be merged 'til we get #7006 though.

@Booplicate Booplicate removed the DONT MERGE srs label Mar 18, 2021
Copy link
Member

@ThePotatoGuy ThePotatoGuy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it seems to me that she blinks more often when advancing dialogue after a line completes. Also these blinks seem much faster than normal to the point where it feels like flickering. I'll hold off on a full approval until @multimokia and @jmwall24 take a look at the feel.

@ThePotatoGuy ThePotatoGuy requested a review from jmwall24 March 19, 2021 05:05
Copy link
Member

@ThePotatoGuy ThePotatoGuy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would these new changes potentially cause issues if we had two monika sprites on the screen at the same time?

@Booplicate
Copy link
Member Author

All Monikas would blink in sync which would look bad, but our current system doesn't allow to show 2 Monikas anyway. Are we going to do it in the future?

@ThePotatoGuy
Copy link
Member

its an option under consideration in #5026. but we could probably just force one to be static.

@jmwall24 jmwall24 removed awaiting code review someone needs to check for syntax/logic/indentation errors awaiting testing code needs to be tested labels Apr 1, 2021
@jmwall24 jmwall24 merged commit b47382b into Monika-After-Story:content Apr 1, 2021
@Booplicate Booplicate deleted the new_idle branch April 1, 2021 23:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants