* Extend give command "talent"
* Update src/main/java/emu/grasscutter/data/excels/AvatarSkillDepotData.java
Shorten IntStream for getCombatSkills
Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
* Fix setSkillLevel to work during avatar construction
Shortening getCombatSkills
* changeSkillLevel now acts as intermediate operation to fetch skillIds
* setSkillLevel changes to allow out of range levels to be normalized
* Update src/main/java/emu/grasscutter/command/commands/GiveCommand.java
Removing recalcStats since it's redundant
Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
* Major changes and cleanup:
- AvatarSkillDepotData: removed getCombatSkills since it's unused
- TalentCommand: shortened /talent all using getSkillsAndEnergySkill
- GiveCommand: changed changeSkillLevel to setSkillLevel
- Avatar: delete changeSkillLevel and moved the operation inside setSkillLevel,updated skillId to Integer to catch special cases from GiveCommand
* Small cleanup:
Removed the special case from Avatar to be handled inside of GiveCommand
Co-authored-by: Luke H-W <Birdulon@users.noreply.github.com>
-De-hardcode elemental orb values
-De-hardcode exp items
-Change ShopChest format (temporary, drop system overhaul will replace it entirely)
-Food healing actually uses Ability data for real HP amounts
Ensures Traveler retains talent levels and constellations on inactive elements when switching elements.
Relevant for any other skillDepot-changing activities like Windtrace too, though keeping those in the db might not be as useful.
Refactor avatar talent upgrade and access
Refactor skillExtraCharges
* [BREAK] proto auto compiled by gradle
* [BREAK] move proto to submodule
* update gitmodules
* [BREAK] move proto to submodule
* move proto to submodule
* fix merge conflict
* fix github action after merging
* fix merge conflicts and del submodule
* upload the proto
1. During the conversion of Morphia calls to the new API, some of the `Filter.eq()` calls had their `field` set to `playerId` due to a copy/paste typo.
2. Morphia 2 switches to the codec system, so anything that will be serialized in the pipeline requires the `@Entity` annotation.