Skip to content

feat: Initial implementation of Melee damage as a stat on weapons (for glaives) #105

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

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

FlaminSarge
Copy link
Contributor

@FlaminSarge FlaminSarge commented Apr 22, 2024

Adds melee and pve_melee to FiringData
Adds melee and pve_melee (with default 0) to SubFamJson
Adds melee_dmg_scale to DamageModifierResponse
Add melee_dmg to DamageProfile

Close To Melee, Vexcalibur/Winterbite perks, updated empowering damage modifiers, Triton Vice, Wormgod Caress, Winter's Guile, and Banner of War are all handled.

The intended UI experience is that Melee damage is only shown if it is nonzero for a weapon's damage profile. We could also go with it only being shown if it is not equal to a Guardian's default punch damage, for the sake of showing it when One-Two Punch and other melee buffs have been proc'd, but then the melee damage indicator would no longer be tied to the weapon being displayed. Limiting it to Glaives (for now) keeps it relevant to the current weapon's damage profile.

Sources:
Glaive interaction spreadsheet: https://docs.google.com/spreadsheets/d/1FT-BL6UA6ntNEN7_btqwlfJaPYTAeIFvlhpkvWHTajc/edit?usp=sharing
Damage stacking spreadsheet: https://docs.google.com/spreadsheets/d/1i1KUwgVkd8qhwYj481gkV9sZNJQCE-C3Q-dpQutPCi4/edit#gid=242217075
light.gg
amoral_support and oni_black_mage's testing
Mossy's spreadsheet: https://docs.google.com/spreadsheets/d/1b57Hb8m1L3daFfUckQQqvvN6VOpD03KEssvQLMFpC5I/

@FlaminSarge FlaminSarge changed the title Initial implementation of Melee damage as a stat on weapons (for glaives) feat: Initial implementation of Melee damage as a stat on weapons (for glaives) Apr 22, 2024
@FlaminSarge
Copy link
Contributor Author

I need updated data for weapon_formulas, as some of it is definitely not correct.

src/perks/lib.rs Outdated
}
impl DamageModifierResponse {
// damage modifier that affects all damage types
pub fn basic_dmg_mod(modifier: f64) -> Self {

Choose a reason for hiding this comment

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

I like this, more ergonomic perk creation is something that should be pursued like this

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I like this, more ergonomic perk creation is something that should be pursued like this

If needed I can pull this out into its own PR as well to reduce how many changes are in this PR.

Copy link
Contributor Author

@FlaminSarge FlaminSarge May 3, 2024

Choose a reason for hiding this comment

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

I went ahead and put these changes in #112, after which I'll rebase this

@oh-yes-0-fps
Copy link

It would have been great if the ..Default::default for all modifier response construction was a separate pr as it feels orthogonal to the adding of glaives. I understand it happened because you made a breaking change and if you were gonna fix all the errors might as well do it, I've done that exact thing before.

@oh-yes-0-fps
Copy link

I would almost say just pulling 11393bc into a separate pr would be worth it to an extent, also this may be out of the scope right now but Weapon::get_damage_profile(bool) return type should definetly be turned into a struct and i don't fullt remember why i didn't make it one to begin with.

@FlaminSarge
Copy link
Contributor Author

FlaminSarge commented Apr 22, 2024

I would almost say just pulling 11393bc into a separate pr would be worth it to an extent, also this may be out of the scope right now but Weapon::get_damage_profile(bool) return type should definetly be turned into a struct and i don't fullt remember why i didn't make it one to begin with.

Moved the Default::default changes into #107, will need to rebase this after that gets merged.
Also #108 for DamageProfile

@FlaminSarge
Copy link
Contributor Author

Last thing remaining is Vexcalibur ranged damage numbers and then this should be good to go

@FlaminSarge FlaminSarge marked this pull request as ready for review May 1, 2024 09:33
@FlaminSarge FlaminSarge force-pushed the glaive branch 3 times, most recently from c3a1b20 to 892d146 Compare May 3, 2024 17:40
@FlaminSarge FlaminSarge force-pushed the glaive branch 2 times, most recently from 8a1978e to effe8b5 Compare May 15, 2024 13:50
@FlaminSarge FlaminSarge force-pushed the glaive branch 2 times, most recently from d141718 to fa1690a Compare June 24, 2024 18:48
@FlaminSarge FlaminSarge force-pushed the glaive branch 2 times, most recently from 7240d1a to 815185d Compare February 14, 2025 22:59
…r glaives)

Adds melee and pve_melee to FiringData
Adds melee and pve_melee (with default 0) to SubFamJson
Adds melee_dmg_scale to DamageModifierResponse and basic_dmg_mod
Adds melee_dmg to DamageProfile
Adds Wasm bindings for melee damage
Also involves converting Winterbite's damage entirely to Explosive damage (there is no impact damage for the shot)
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