Restructure#380
Draft
theBGuy wants to merge 755 commits into
Draft
Conversation
Contributor
theBGuy
commented
Jun 19, 2023
- Pretty much a complete re-write
This was
linked to
issues
Aug 18, 2023
This was
linked to
issues
Mar 26, 2024
Closed
Open
Collaborator
|
So this restructure is the main repo for a long time, and this is open for years now. Can we just merge this at some point? |
Contributor
Author
I don't feel it's done yet and haven't had enough time to test all features |
- This feature enables more control over when we want to enable/disable recipes dynamically. Users can now choose to enable a recipe by the current quantity they have of the result, i.e only cubing a Ber if they don't already have n amount of them, for further control users can pass a condition callback to be checked if for instance they want to only roll a recipe if they have a certain amount of space in their stash like
```js
Config.Recipes.push([Recipe.Socket.Armor, "Archon Plate", {
Ethereal: Roll.Eth,
condition: function () {
return Storage.Stash.UsedSpacePercent() < 85;
},
}]);
```
- Allow passing a range or quantity param for the pick and stack actions
…ring for areas with wps
- This version of spidermonkey doesn't support arrow methods well
…ldown - Add cain to available rush commands - Give better timed out message including the players name in the message - Track voting period with a configurable cooldown period to stop users from spamming it when they lose the vote - Auto squlch shitlisted players so they don't cause the bot to be muted by having it repeatedly say, "no commands for the shitlisted" - Squelch flooders instead of just ignoring their messages, this prevents us from even having to process it for the 60 seconds which lets d2bs work better - Catch errors and move on during autochanting, sometimes players left or summons would dissapear causing an error to be thrown. Just log it and move on as this isn't fatal - Add `stopWatcher` to the givewp command so players can end the wait early if they requested something they didn't mean too (still see lots of users get this command wrong idk how) - Clean the input message before attempting to process it - Add messages for den and forge, as users often request these over and over even after seeing the help message that lists available commands - Add message for when users try to cancel the active command - Add message for when users call cancel with no action - Add message for when users request the command that is already running - Make NGVoting configurable like other commands - Change a1 location from portalspot to stash - Add a message after users vote so they know their vote was counted - Add a message for when users vote and their vote has already been counted
- Broke up a lot of the logic into smaller pieces and removed most of the large switch cases in favor of maps
- Removed redundant usage of array when we were always accessing the first/and only element
- Add back `UnpartyForMinGameTimeWait: false,` it got removed in 09ce5b6
…ordering - Needed to define the Worldstone chamber exit manually which resulted in the wsk3 exit being out of order so add to special cases and return early from add like we do for durance and palace
…ing opaque - Allow configuring the Box opacity with createContainer - Made the settings box opaque so the life text doesn't make it hard to read
- This was causing chickens occasionally if the first script didn't heal before starting. Was redundant anyway since Town.heal checks the config values
- Mostly useful for characters using physical damage attacks like zeal or frenzy with weapons or other gear that does elemental damage allowing us to kill physical immunes without breaking the immunity itself.
- Don't throw the script event if we are actively doing chores
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.1 to 3.4.2. - [Commits](WebReflection/flatted@v3.3.1...v3.4.2) --- updated-dependencies: - dependency-name: flatted dependency-version: 3.4.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Don't log entire object, just the action we are starting and if the action is `doDrop` the items we are preparing to drop
- Sometimes items were getting stuck on cursor due to scriptevents bubbling up, handle it here
…r delay - We sometimes don't want to allow background work while polling for something since game might not be in a ready state.
- HallsoftheDeadLvl3 -> MaggotLairLvl3 for taxi staff
- Replace incorrect uses of this.wpAreas (and related references) with Pather.wpAreas to ensure the module consistently accesses the shared waypoint arrays. These changes fix failures when methods or callbacks lose the correct this context (e.g., useWaypoint validation, waypoint checks in random selection and target checks, plotCourse logic, and town waypoint handling), preventing incorrect "this.wpAreas is undefined"
- Add game info logging in Experience.js when DataFile stats are not present. Add documentation comment for NTItemParser's alias in/notin parsing. Normalize braces and reformat complex conditions in Pickit.js for readability (no logic changes). Use nativeDelay in manualplay to avoid the previous delay call. Warn on attempts to access unknown properties in LazyLoader. Extend Town.d.ts with choresActive and tighten ignoredItemTypes to number[], and reformat drinkPots signature. Add ignoreDeprecations setting to tsconfig.json.
- Move item position (x,y,area) into ItemStats and replace the static dist/useTk calculation with a dynamic useTk getter/setter that computes distance and collision via CollMap.checkColl, ensuring up-to-date decisions for telekinesis. Replace delay(500) with nativeDelay(500) before cancelling UI to avoid timing/interaction issues. Tidy up a collision condition in the pickup loop and enhance the "not enough room" warning to include current inventory used percent. These changes improve accuracy of pickup logic and provide clearer logging for automule triggers.
Invoke Town.doChores() when the loader finishes the last script to clear leftover inventory (prevents false postive muling). - Also add a /// <reference> to TorchSystem.d.ts in globals.d.ts so TorchSystem types are available globally.
- Add a guard in d2bs/kolbot/libs/core/Pickit.js to detect when _item is falsy or missing a gid while attempting to pick it. When detected, log a warning, remove the entry from Pickit.pickList, and continue, preventing errors or crashes caused by items that disappear or become invalid during the pick process.
- Add .gitattributes with a linguist override so files matching *.dbj are treated as JavaScript by GitHub Linguist, ensuring correct syntax highlighting and language stats. - Based on https://github.com/orgs/community/discussions/45157#discussioncomment-16856678
Added event listener to handle updates for D2Bot.
- Add Fara, Hratli, Halbu, and Larzuk to the shop-case in Unit.prototype.startTrade so they return sdk.menu.TradeRepair when mode === 'shop'. Ensures these NPCs open the repair/shop menu correctly (d2bs/kolbot/libs/core/Prototypes.js).
- Add logic to detect low TP/ID scroll counts and prefer visiting the Shop NPC. When scrolls are needed (TP < 13 or ID < 13 with FieldID enabled) Town choices now favor the shop and remove Repair/Gamble/Key options. After selling, if the shop UI is open the bot will buy TP/ID scrolls, purchase needed potions, and repair equipment when appropriate. Also includes a small refactor/comment repositioning around the NPC initialization retry loop.
- Introduce the AutoRush system: add D2BotAutoRush.dbj entry script and new autorush config (systems/autorush/RushConfig.js) with setup installer entry. - Update .gitignore and setup script to handle the new config. Refactor rushee logic into a Runnable with updated overrides (Rushee.js), load RushConfig automatically from core Config when the auto-rush script is present, and add RushConstants. Misc fixes and improvements: handle CharSelect connecting retry and randomized delays in OOG.js, add Pather.init(force) to allow forced initialization, add Pickit.enabled gating and guard fastPick/pickItems, and replace per-class auto-rush comments to point to the new central RushConfig. These changes integrate the new autorush workflow and stabilize login/creation/join behavior.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.