Skip to content

Fix Decay and Ice Storm area skill settings#749

Open
itayalroy wants to merge 1 commit intoMUnique:masterfrom
itayalroy:fix_decay_ice_storm
Open

Fix Decay and Ice Storm area skill settings#749
itayalroy wants to merge 1 commit intoMUnique:masterfrom
itayalroy:fix_decay_ice_storm

Conversation

@itayalroy
Copy link
Copy Markdown

@itayalroy itayalroy commented Apr 8, 2026

Fix AreaSkillSettings of a few mage skills:

  1. Fix decay's target area so it no longer hits monsters far outside the intended impact zone
  2. Remove Ice Storm's deferred-hit timing
  3. Fix hellfire & hellfire strengthener target areas

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, 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 adjusts the area skill settings for Decay and Ice Storm to ensure they match the expected Season 6 game mechanics. By modifying both the initial configuration and providing a migration path for existing environments, the changes ensure consistent behavior regarding target area detection and hit timing across all server instances.

Highlights

  • Skill Configuration Adjustment: Updated Decay and Ice Storm skill settings to align with Season 6 behavior, specifically by tightening the target area and removing deferred-hit timing.
  • New Update Plugin: Introduced a new migration plugin to apply these skill configuration changes to existing server setups.
  • Initialization Update: Updated the base initialization logic and the Season 6 skills initializer to reflect the corrected skill parameters.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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.

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
Copy Markdown

@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 pull request introduces a new plug-in to align the area skill settings for Decay and Ice Storm with Season 6 server behavior, including updates to the initialization logic and versioning. Regarding the implementation, the DefaultAreaSkillSettings defines ProjectileCount as 1, which may create inconsistencies with other initialization paths where this property is not explicitly set. Additionally, the Where clause in the plug-in could be simplified for better readability.

Comment on lines +61 to +62
foreach (var skill in gameConfiguration.Skills.Where(skill => skill.Number is (short)SkillNumber.Decay or (short)SkillNumber.IceStorm
|| skill.MasterDefinition?.ReplacedSkill?.Number is (short)SkillNumber.Decay or (short)SkillNumber.IceStorm))
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The Where clause is slightly complex and could be simplified for better readability. Additionally, consider that if gameConfiguration.Skills is a large collection, this filter runs for every skill. While not a performance bottleneck here, it's a good practice to keep filters concise.

        foreach (var skill in gameConfiguration.Skills.Where(s => s.Number is (short)SkillNumber.Decay or (short)SkillNumber.IceStorm
                   || s.MasterDefinition?.ReplacedSkill?.Number is (short)SkillNumber.Decay or (short)SkillNumber.IceStorm))

MinimumNumberOfHitsPerTarget = 1,
MaximumNumberOfHitsPerTarget = 1,
HitChancePerDistanceMultiplier = 1.0f,
ProjectileCount = 1,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

In DefaultAreaSkillSettings, ProjectileCount is explicitly set to 1. However, in the corresponding changes in AddAreaSkillSettingsUpdatePlugIn.cs and SkillsInitializer.cs, this property is not explicitly set, which might lead to an inconsistency where fresh installations have a default value (likely 0 for an int) while updated installations have 1. If 1 is the intended value for these skills, it should be consistently applied across all initialization paths.

@itayalroy itayalroy force-pushed the fix_decay_ice_storm branch from fc351a3 to 0652da7 Compare April 8, 2026 11:58
@sven-n
Copy link
Copy Markdown
Member

sven-n commented Apr 8, 2026

Thanks, it looks fine. I'll need to test it when I have time

@itayalroy itayalroy force-pushed the fix_decay_ice_storm branch 2 times, most recently from 50998c1 to 402a137 Compare April 9, 2026 01:10
@itayalroy
Copy link
Copy Markdown
Author

itayalroy commented Apr 9, 2026

@sven-n I've added a fix to hellfire (target area was too big) and hellfire strengthener (target area was 0, skill did not hit any monster)

@itayalroy itayalroy force-pushed the fix_decay_ice_storm branch from 402a137 to 9bf30ba Compare April 9, 2026 01:30
@itayalroy
Copy link
Copy Markdown
Author

itayalroy commented Apr 9, 2026

@sven-n Actually, I've been comparing skill effect area implementation in OpenMU vs MuAlfa open source (https://github.com/creadormu/GameServer), and they use euclidean distance to check which monsters are in range, while OpenMU is using manhattan distance (which creates a square effect area)- is it intentional?

In any case, it seems that on legacy MU implementations, the client chooses which monsters are hit, and the server only validates it against some sanity value. I think it's worth to thoroughly align OpenMU skill effect areas with the legacy MU client, because it is very likely that we have additional skills with similar issues

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.

2 participants