-
Notifications
You must be signed in to change notification settings - Fork 4.5k
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
Blossom Implement #1606
Blossom Implement #1606
Conversation
double reward implement is coming soon |
@KingRainbow44 All done, I tested it and it is no problem |
@eternalcomet melledy is busy, it doesn't hurry |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested locally, mostly works. There's a few things that need some more attention but they can probably wait until after merging this set of changes.
Leaving a few comments up for @Melledy to look over.
To all other write-access: Please don't merge this without squashing!
.map(SpawnDataEntry::getGroup) | ||
.map(SpawnGroupEntry::getSpawns) | ||
.flatMap(List::stream) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels like it's going around in circles but I can't be bothered to confirm if it's safe to just delete this and use the raw SpawnDataEntry
stream.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels like it's going around in circles but I can't be bothered to confirm if it's safe to just delete this and use the raw
SpawnDataEntry
stream.
emmm, see follows?
synchronized (blossomActivities){ | ||
var it = blossomActivities.iterator(); | ||
while(it.hasNext()){ | ||
var active = it.next(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a fan of these iterator patterns, not sure if there's a cleaner way of doing iterate and delete though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a fan of these iterator patterns, not sure if there's a cleaner way of doing iterate and delete though.
The code is designed to locate blossoms in the WHOLE map,so I have to use GameDepot.getSpawnLists() , if you have a good idea ,feel free to improve that
synchronized (activeChests) { | ||
var it = activeChests.iterator(); | ||
while (it.hasNext()) { | ||
var activeChest = it.next(); | ||
if (activeChest.getChest() == chest) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a fan of these iterator patterns, not sure if there's a cleaner way of doing find and delete though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a fan of these iterator patterns, not sure if there's a cleaner way of doing find and delete though.
The iterator could help us safely delete item, because when I use for with index to delete item, the index will change when I delete a item,program will crash immediately
maybe we can use these files to control the logic
|
EntityGadget rewardGadget = new EntityGadget(gadget.getScene(), BLOOMING_GADGET_ID, gadget.getPosition()); | ||
SceneGadget metaGadget = new SceneGadget(); | ||
metaGadget.boss_chest = new SceneBossChest(); | ||
metaGadget.boss_chest.resin = 20; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we may read resin cost and chestGadgetId from "\resources\ExcelBinOutput\BlossomChestExcelConfigData.json"
instead of hard coding
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we may read resin cost and chestGadgetId from
"\resources\ExcelBinOutput\BlossomChestExcelConfigData.json"
instead of hard coding
oh, I had overlooked that...
src/main/java/emu/grasscutter/game/managers/blossom/BlossomManager.java
Outdated
Show resolved
Hide resolved
} | ||
gadget.buildContent(); | ||
gadget.setState(204); | ||
int worldLevel = getWorldLevel(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should check open state for the player(level>2),and the level should be read from file BlossomOpenExcelConfigData.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually the unlock conditions are under refreshCondVec
in Resources/ExcelBinOutput/BlossomRefreshExcelConfigData.json
- it's AR8 for the Mondstadt EXP leyline, AR12 for Mondstadt mora leyline, AR18 for both Liyue leylines, AR30 for both Inazuma leylines.
Copying the official spawns will be a bit more work after this PR.
src/main/java/emu/grasscutter/game/managers/blossom/BlossomManager.java
Outdated
Show resolved
Hide resolved
that looks like a huge Engineering,hmmm.. I think this task could move to enhancement plan |
so maybe it can be merged? |
Meledy has expressed interest in personally reviewing it. In the meantime, loading enemy spawn groups from |
* Blossom! * rename * delete SpawnBlossomEntry.java * use MAP * use List * use LIST * use List * useCondensedResin * useCondensedResin * fix build * enhance * fix bug * REMOVE BOSS * fix condensed resin * fix condensed resin * use POSITIVE_INFINITY * use RewardPreviewData * fix build * fix resources * add BLOSSOM_MONSTER_FIGHTING_VOLUME * edit monster score * edit monster score * fix bug * fix bug * improve logic * fix monsters level * Deleted comment blocks * nitpick * Fix compilation problems * nitpick * Refactor + nitpick * Clean up overall diff to develop * Clean up other usage of condensed resin * Clean up overall diff to develop * Lombokify Scene.java * Missed an odd getter name * Unhardcode reward previews * EDIT NAME * remove leyline 1 * remove leyline 2 * Update BlossomManager.java Co-authored-by: AnimeGitB <AnimeGitB@bigblueball.in>
Update languages [skip actions] Fix whitespace [skip actions] Add version increments to lint branch Plugin Manager localisation Update ru-RU.json fix serenitea pot main building Add command targeting by account username Fix elementless Traveler depotValue [BREAKING] dummy commit for Express -> Javalin Update contributing guidelines Move the remaining `HttpUtils` function over to `Router` Clean up http server content types Replace express with javalin in logger Update HttpServer & AuthenticationSystem to use Javalin Remove ``java-express``. Add javalin as dependency Custom Teams (#1731) Console output player command (#1722) Clean up adding extra embryo logic in Avatar::recalcStats Clean up OpenStateData onLoad logic Update default Banners.json (#1719) fix serenitea pot (#1726) fix: avatar energy transform in proudskill Update README.md Sequel (#1717) Add permission clear and list commands (#1715) Fix offline account deletion (fixes #1716) maybe drop my dev domain and use `grasscutter.io` Fix up some japanese references add dendro resonance Update README_NL.md Update readme interlinks Jp support (#1712) Update translation (#1711) Merge pull request #1710 from pfyy/development fix dungeon Dutch language updates For README (#1709) Fix weird conditional in `EquipAffixData` partial fix of dungeon Update `AvatarCostumeData` naming Fix `ReliquarySetData` naming Update README_zh-CN.md Show accessAddress in bold yellow on startup This should make it easier to help people troubleshoot networked setups. Consider telling people to try connecting to the address with a web browser on the client's machine. Update SetPropCommand strings, send cmd usage on target fail refactor some itemdepot lookups for later Fix account deletion Fix HelpCommand missing aliases Prevent material type from being null Move vehicle fightprop hacks Consolidate random point offsets De-hardcode ChestBatchUse Remove asset names from json and comments Actually fix RegionHandler Add new 3.0 Reliquary and SkillParticleGeneration data versionFix must be >= 50 not == 50 in RegionHandler Update game version to 3.0.0 Add Sumeru expeditions. Add scene tag for Vanarana. Make PointData compatible with alternative PointData Fixed Gadget Spawning 3.0 Opcodes Fix RegionHandler versions Update classes to match protos Update 3.0 protos Fix QuestEncryptionKeys Path (#1696) Update README.md (#1695) More literate README_ru-RU.md Avoid potential NPE on WL0 (#1693) Make lint workflows ignore generated folder But run them on linter and workflow changes Clean up some Position usage to avoid unneccessary unpacks Fix healing skills being able to heal dead characters Fix null pointer in `Avatar` if skill level map didnt already contain skill id Delete quests from the player if there are errors loading them from the db update zh-CN.json (#1684) Update ru-RU.json Rename lint_commit's job, don't fail on no changes Fix lint commit reference Allow adding constellations to playerless avatars Fixes #1682 Fix whitespace [skip actions] Don't lint src/generated Make TalentCommand show off new Translate function Improve translate function Make commands pass ints and floats instead of manually casting them to string first Hide resin from map when disabled Replace protos with generated protos small quest fixes (#1677) Blossom Implement (#1606) Merge pull request #1680 from 4Benj/development Remove uncompiled protos from compiled jar Remove crazy high AEXP drops from default chest rewards Fix talentcommand message key Refactor avatar skilldepot and constellation/talent changing 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. Add README_fil-PH.md (#1675) Avoid allocations on Map::putIfAbsent usage Map::computeIfAbsent only runs the passed constructors when it needs to Add iterable payItems methods Shame they could never be fully generic, but oh well Change unlocked scenes from lists to sets Handbooks: use some sorted maps Stop vendoring fastutil Lombokify some more getters Remove erroneous references to excel skilldata instead of avatar skilldata Refactor team resonances and correct login behaviour and less-than-full-party behaviour Add README_ko-KR.md (#1673) Don't use UIDs as initial capacity for chat history ChatSystem nitpick Fix chat welcome messages and some slight refactoring. Fix deprecated chat references update zh-CN.json (#1662) Refactoring (#1660) chore: typo fix Bump config version. Update ConfigContainer.java (#1646) make fishhook_tp configurable Refactor Json helper functions to JsonUtils Funnel all gson calls into helper functions Remove beta message Fix TalentCommand for Traveler fix:command player said to server won't be shown at chat history (#1643) Update install_without_dependencies.sh Fixed install_without_dependencies.sh script Handle Unlocking of Waypoints and Statues (#1608) Stop language linter from fighting the main linter on \n Fix an edge case that breaks embryos if resources are loaded early Introduce a new arguments parser (#1629) Fix Claiming BP Reward Chests (#1634) Make missing languages not throw warnings Unify gacha mappings generation Remove vestigial references to gacha_mappings Remove language hack from handbook generation Generate handbooks on every launch, fix html docs Refactor handbook generation, remove singular handbook Cache used strings from TextMaps Load in all the textmaps! Implement working* burst/ultimate invincibility Added Indonesian README Added install_without_dependencies.sh file Add invoke-level invulnerability for bursts. Invoke `AbilityManager#onSkillStart` and `AbilityManager#onSkillEnd` Add a method to be invoked on skill perform and end Update README_pl-PL.md Update README_ru-RU.md Update README_es-ES.md Update README_fr-FR.md Update README_zh-TW.md Update README_zh-CN.md Update README.md fix typo Added Indonesian language Added install_without_dependencies.sh file Improve some documentation and JSON (#1618) Add `EntityDamageEvent` and implementations Add more events Update HandlerSceneTransToPointReq.java Update src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java Update src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java Update src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java Polish README and setConst translation (#1614) Update ru-RU.json Create ko-KR.json Add `PlayerUseFoodEvent` and implementations Move `PlayerTeleportEvent` occurrences into `World` Merge branch 'development' into more-events Clean-up the energy manager Explicitly declare the charset of a `FileReader` in `ConfigContainer` Update zh-CN.json Changed charset of FileReader in ConfigContainer from default to utf-8. Add files via upload Auto language lint Add explicit encoding on manage_languages.py for windows users Add lock function to SetStatsCommand Improve message formatting to clients Replaces tab indents with an extra linebreak. Also adds / to the start of command usage. Neither of these changes affect messages to the server console log. Update zh-CN.json Update zh-CN.json Merge pull request #1586 from Birdulon/development Suppress stacktrace on missing questkeys file Change loading quest keys from `info` to `debug`. Update zh-CN.json Fix an NPE in `EntityGadget` when `draft_id` isn't set SceneScriptManager fix nullPointer error Move `QuestEncryptionKeys` to `resources/` Traditional Chinese | Translation Patches fix nullPointer error small nullpointer fix in EntityGadget, in case meta gadget is not set Update ru-RU.json Add spanish translation for constellation commands Merge pull request #1553 from akatatsu27/questing token fix Merge branch 'development' into questing Update ru-RU.json [Bug] New avatars always created with C0 constellation Fixes #1552 2.7+ prerendered cutscene support two small activity/event fixes * fixed GetAcitivityInfoReq proto * added draft to gadget Scene gatget, to let the client know the propper minigame for some entities Set Constellation Command (#1565) Update French translation Fix remaining traces of `Player#getPos` Attempt to fix the `teleport` command. Add `PlayerTeamDeathEvent` and implementations Add `EntityDeathEvent` and implementations Add a `Location` class (Scene + Position) Remove deprecated class Merge branch 'development' into more-events call deregisterRegion appropriately Merge branch 'development' into questing Read Open States from Excels (#1557) and misc bug fixes Major questing improvements Merge branch 'development' into more-events Translated new changes in languages files to Spanish Fix taking battle pass rewards Add `unlockall` command to unlock all openstates Fix battle pass manager saving with 0 id Set `setChooseAvatarGuid` properly Implement food buffs Use sorted containers for commands & aliases Change commands to use new usage message method. Refactor Command usage and description strings Updated Russian localization (#1543) Refactor excel datas (Mainly item data) Add `kcpInterval` to the config Rename `hasSentAvatarDataNotify()` to `hasSentLoginPackets()` Fix host team size not changing when a player joins their world for the first time Lower kcp interval to 20 Bump project version Add `PlayerTeleportEvent` Update to support `PlayerMoveEvent` Remove `Cancellable` from `PlayerMoveEvent` Implement `PlayerMoveEvent`
Update languages [skip actions] Fix whitespace [skip actions] Add version increments to lint branch Plugin Manager localisation Update ru-RU.json fix serenitea pot main building Add command targeting by account username Fix elementless Traveler depotValue [BREAKING] dummy commit for Express -> Javalin Update contributing guidelines Move the remaining `HttpUtils` function over to `Router` Clean up http server content types Replace express with javalin in logger Update HttpServer & AuthenticationSystem to use Javalin Remove ``java-express``. Add javalin as dependency Custom Teams (#1731) Console output player command (#1722) Clean up adding extra embryo logic in Avatar::recalcStats Clean up OpenStateData onLoad logic Update default Banners.json (#1719) fix serenitea pot (#1726) fix: avatar energy transform in proudskill Update README.md Sequel (#1717) Add permission clear and list commands (#1715) Fix offline account deletion (fixes #1716) maybe drop my dev domain and use `grasscutter.io` Fix up some japanese references add dendro resonance Update README_NL.md Update readme interlinks Jp support (#1712) Update translation (#1711) Merge pull request #1710 from pfyy/development fix dungeon Dutch language updates For README (#1709) Fix weird conditional in `EquipAffixData` partial fix of dungeon Update `AvatarCostumeData` naming Fix `ReliquarySetData` naming Update README_zh-CN.md Show accessAddress in bold yellow on startup This should make it easier to help people troubleshoot networked setups. Consider telling people to try connecting to the address with a web browser on the client's machine. Update SetPropCommand strings, send cmd usage on target fail refactor some itemdepot lookups for later Fix account deletion Fix HelpCommand missing aliases Prevent material type from being null Move vehicle fightprop hacks Consolidate random point offsets De-hardcode ChestBatchUse Remove asset names from json and comments Actually fix RegionHandler Add new 3.0 Reliquary and SkillParticleGeneration data versionFix must be >= 50 not == 50 in RegionHandler Update game version to 3.0.0 Add Sumeru expeditions. Add scene tag for Vanarana. Make PointData compatible with alternative PointData Fixed Gadget Spawning 3.0 Opcodes Fix RegionHandler versions Update classes to match protos Update 3.0 protos Fix QuestEncryptionKeys Path (#1696) Update README.md (#1695) More literate README_ru-RU.md Avoid potential NPE on WL0 (#1693) Make lint workflows ignore generated folder But run them on linter and workflow changes Clean up some Position usage to avoid unneccessary unpacks Fix healing skills being able to heal dead characters Fix null pointer in `Avatar` if skill level map didnt already contain skill id Delete quests from the player if there are errors loading them from the db update zh-CN.json (#1684) Update ru-RU.json Rename lint_commit's job, don't fail on no changes Fix lint commit reference Allow adding constellations to playerless avatars Fixes #1682 Fix whitespace [skip actions] Don't lint src/generated Make TalentCommand show off new Translate function Improve translate function Make commands pass ints and floats instead of manually casting them to string first Hide resin from map when disabled Replace protos with generated protos small quest fixes (#1677) Blossom Implement (#1606) Merge pull request #1680 from 4Benj/development Remove uncompiled protos from compiled jar Remove crazy high AEXP drops from default chest rewards Fix talentcommand message key Refactor avatar skilldepot and constellation/talent changing 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. Add README_fil-PH.md (#1675) Avoid allocations on Map::putIfAbsent usage Map::computeIfAbsent only runs the passed constructors when it needs to Add iterable payItems methods Shame they could never be fully generic, but oh well Change unlocked scenes from lists to sets Handbooks: use some sorted maps Stop vendoring fastutil Lombokify some more getters Remove erroneous references to excel skilldata instead of avatar skilldata Refactor team resonances and correct login behaviour and less-than-full-party behaviour Add README_ko-KR.md (#1673) Don't use UIDs as initial capacity for chat history ChatSystem nitpick Fix chat welcome messages and some slight refactoring. Fix deprecated chat references update zh-CN.json (#1662) Refactoring (#1660) chore: typo fix Bump config version. Update ConfigContainer.java (#1646) make fishhook_tp configurable Refactor Json helper functions to JsonUtils Funnel all gson calls into helper functions Remove beta message Fix TalentCommand for Traveler fix:command player said to server won't be shown at chat history (#1643) Update install_without_dependencies.sh Fixed install_without_dependencies.sh script Handle Unlocking of Waypoints and Statues (#1608) Stop language linter from fighting the main linter on \n Fix an edge case that breaks embryos if resources are loaded early Introduce a new arguments parser (#1629) Fix Claiming BP Reward Chests (#1634) Make missing languages not throw warnings Unify gacha mappings generation Remove vestigial references to gacha_mappings Remove language hack from handbook generation Generate handbooks on every launch, fix html docs Refactor handbook generation, remove singular handbook Cache used strings from TextMaps Load in all the textmaps! Implement working* burst/ultimate invincibility Added Indonesian README Added install_without_dependencies.sh file Add invoke-level invulnerability for bursts. Invoke `AbilityManager#onSkillStart` and `AbilityManager#onSkillEnd` Add a method to be invoked on skill perform and end Update README_pl-PL.md Update README_ru-RU.md Update README_es-ES.md Update README_fr-FR.md Update README_zh-TW.md Update README_zh-CN.md Update README.md fix typo Added Indonesian language Added install_without_dependencies.sh file Improve some documentation and JSON (#1618) Add `EntityDamageEvent` and implementations Add more events Update HandlerSceneTransToPointReq.java Update src/main/java/emu/grasscutter/server/packet/recv/HandlerSceneTransToPointReq.java Update src/main/java/emu/grasscutter/game/managers/mapmark/MapMarksManager.java Update src/main/java/emu/grasscutter/server/packet/recv/HandlerTryEnterHomeReq.java Polish README and setConst translation (#1614) Update ru-RU.json Create ko-KR.json Add `PlayerUseFoodEvent` and implementations Move `PlayerTeleportEvent` occurrences into `World` Merge branch 'development' into more-events Clean-up the energy manager Explicitly declare the charset of a `FileReader` in `ConfigContainer` Update zh-CN.json Changed charset of FileReader in ConfigContainer from default to utf-8. Add files via upload Auto language lint Add explicit encoding on manage_languages.py for windows users Add lock function to SetStatsCommand Improve message formatting to clients Replaces tab indents with an extra linebreak. Also adds / to the start of command usage. Neither of these changes affect messages to the server console log. Update zh-CN.json Update zh-CN.json Merge pull request #1586 from Birdulon/development Suppress stacktrace on missing questkeys file Change loading quest keys from `info` to `debug`. Update zh-CN.json Fix an NPE in `EntityGadget` when `draft_id` isn't set SceneScriptManager fix nullPointer error Move `QuestEncryptionKeys` to `resources/` Traditional Chinese | Translation Patches fix nullPointer error small nullpointer fix in EntityGadget, in case meta gadget is not set Update ru-RU.json Add spanish translation for constellation commands Merge pull request #1553 from akatatsu27/questing token fix Merge branch 'development' into questing Update ru-RU.json [Bug] New avatars always created with C0 constellation Fixes #1552 2.7+ prerendered cutscene support two small activity/event fixes * fixed GetAcitivityInfoReq proto * added draft to gadget Scene gatget, to let the client know the propper minigame for some entities Set Constellation Command (#1565) Update French translation Fix remaining traces of `Player#getPos` Attempt to fix the `teleport` command. Add `PlayerTeamDeathEvent` and implementations Add `EntityDeathEvent` and implementations Add a `Location` class (Scene + Position) Remove deprecated class Merge branch 'development' into more-events call deregisterRegion appropriately Merge branch 'development' into questing Read Open States from Excels (#1557) and misc bug fixes Major questing improvements Merge branch 'development' into more-events Translated new changes in languages files to Spanish Fix taking battle pass rewards Add `unlockall` command to unlock all openstates Fix battle pass manager saving with 0 id Set `setChooseAvatarGuid` properly Implement food buffs Use sorted containers for commands & aliases Change commands to use new usage message method. Refactor Command usage and description strings Updated Russian localization (#1543) Refactor excel datas (Mainly item data) Add `kcpInterval` to the config Rename `hasSentAvatarDataNotify()` to `hasSentLoginPackets()` Fix host team size not changing when a player joins their world for the first time Lower kcp interval to 20 Bump project version Add `PlayerTeleportEvent` Update to support `PlayerMoveEvent` Remove `Cancellable` from `PlayerMoveEvent` Implement `PlayerMoveEvent`
Description
Please carefully read the Contributing note and Code of conduct before making any pull requests.
And, Do not make a pull request to merge into stable unless it is a hotfix. Use the development branch instead.
Issues fixed by this PR
Type of changes
Checklist: