Skip to content

Conversation

@MakinoharaShoko
Copy link
Member

No description provided.

xiaoxustudio and others added 30 commits August 29, 2025 19:41
fix: fast cannot cancel when mouse wheel down roll
feat: add set effect debug command
refactor: perform auto-import using import.meta.glob
boomwwww and others added 25 commits November 12, 2025 23:31
修改.gitattributes文件:eol=lf
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
fix: parse argument when say content is blank
feat: allow using `enterDuration` and `exitDurationOfPrev` for figure and bg enter/exit animation config
…ml-4.1.1

build(deps): bump js-yaml from 4.1.0 to 4.1.1
feat: add max_line and max_lineHeight config settings
@gemini-code-assist
Copy link

Summary of Changes

Hello @MakinoharaShoko, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request delivers a suite of significant upgrades to the WebGAL engine, enhancing its capabilities in animation, platform integration, and content flexibility. The core purpose is to empower game developers with more control over visual presentation and external services, while also improving the underlying stability and parsing of game scripts. These changes collectively aim to provide a richer development experience and more dynamic game content.

Highlights

  • Steam Integration: Introduced a new callSteam script command and a dedicated SteamIntegration module to facilitate unlocking Steam achievements directly from game scripts. This allows for seamless integration with the Steam platform's achievement system.
  • Dynamic Font Loading: Implemented support for custom fonts defined within a template.json file. The font selection UI and underlying hooks have been refactored to dynamically load and manage these fonts, offering greater customization for game developers.
  • Animated GIF Support: Added functionality to display animated GIFs as visual assets on the Pixi.js stage. This is achieved through the integration of the gifuct-js library and a new GifResource class, expanding the range of visual effects available.
  • Enhanced Animation Control: Refactored animation settings to be managed centrally within the Redux store. This provides more granular control over enter/exit animations and their durations for both background elements and character figures, improving animation flexibility.
  • Improved Script Parsing: The script parser has been made more robust by handling various line endings (e.g., Windows-style \r\n) and trimming whitespace from script arguments. Comment parsing logic has also been refined for better accuracy.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This is a substantial pull request that introduces several major features and architectural improvements. The addition of Steam integration, GIF support, and a new template system for fonts significantly expands the engine's capabilities. The refactoring of the animation and font systems to be data-driven and managed through the Redux store is a fantastic improvement for maintainability and extensibility. Numerous other changes, such as parser improvements, error handling, and code cleanup, further enhance the quality and robustness of the codebase. I have one suggestion for a minor refactoring to simplify the logic in the new callSteam script. Overall, this is an excellent set of changes.

Comment on lines +13 to +27
for (const arg of sentence.args) {
if (arg.key === 'achievementId') {
const achievementId = getStringArgByKey(sentence, 'achievementId');
if (achievementId) {
WebGAL.steam
.unlockAchievement(achievementId)
.then((result) => {
logger.info(`callSteam: achievement ${achievementId} unlock ${result ? 'succeeded' : 'failed'}`);
})
.catch((error) => {
logger.error(`callSteam: achievement ${achievementId} unlock threw`, error);
});
}
}
}

Choose a reason for hiding this comment

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

medium

The for loop here is redundant. The getStringArgByKey function already iterates through the sentence arguments to find the first one with the specified key. You can simplify this logic by removing the loop and calling getStringArgByKey directly.

  const achievementId = getStringArgByKey(sentence, 'achievementId');
  if (achievementId) {
    WebGAL.steam
      .unlockAchievement(achievementId)
      .then((result) => {
        logger.info(`callSteam: achievement ${achievementId} unlock ${result ? 'succeeded' : 'failed'}`);
      })
      .catch((error) => {
        logger.error(`callSteam: achievement ${achievementId} unlock threw`, error);
      });
  }

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Dec 5, 2025

Deploying webgal-dev with  Cloudflare Pages  Cloudflare Pages

Latest commit: f191b10
Status: ✅  Deploy successful!
Preview URL: https://b68cddaa.webgal-dev.pages.dev

View logs

@MakinoharaShoko MakinoharaShoko merged commit 23e98d9 into main Dec 5, 2025
2 checks passed
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