feat: add 3 intermediate quests — Roads Run Red, Iron Will, Warchief'#18
Closed
terminaldestiny wants to merge 2309 commits intoHyperscapeAI:mainfrom
Closed
feat: add 3 intermediate quests — Roads Run Red, Iron Will, Warchief'#18terminaldestiny wants to merge 2309 commits intoHyperscapeAI:mainfrom
terminaldestiny wants to merge 2309 commits intoHyperscapeAI:mainfrom
Conversation
…scapeAI/hyperscape into hackathon # Conflicts: # packages/contracts/deploys/31337/latest.json # packages/contracts/worlds.json # packages/gold-betting-demo/app/bun.lock
…cape into hackathon # Conflicts: # packages/gold-betting-demo/app/src/App.tsx # packages/gold-betting-demo/app/src/components/PredictionMarketPanel.tsx
…scapeAI/hyperscape into hackathon # Conflicts: # bun.lock # packages/contracts/deploys/31337/latest.json # packages/contracts/worlds.json
Add spatial bounds check so SafeAreaDeathHandler never creates gravestones in the duel arena — duel deaths are fully owned by DuelSystem/StreamingDuelScheduler. This is robust against server restarts and race conditions where runtime duel flags may have been cleared before death processing ran.
…eatures - Added PointsLeaderboard and PointsHistory components for displaying user points and activity. - Updated PointsDisplay to include rank and multiplier details. - Integrated new API endpoints for fetching rank and multiplier data. - Introduced a referral panel for tracking referral bonuses. - Updated package.json to include new dependencies for real-time features.
Add spatial bounds check so SafeAreaDeathHandler never creates gravestones in the duel arena — duel deaths are fully owned by DuelSystem/StreamingDuelScheduler. This is robust against server restarts and race conditions where runtime duel flags may have been cleared before death processing ran.
Bumps the typescript group with 1 update in the / directory: [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai). Updates `@types/chai` from 4.3.17 to 5.2.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai) --- updated-dependencies: - dependency-name: "@types/chai" dependency-version: 5.2.3 dependency-type: direct:development update-type: version-update:semver-major dependency-group: typescript ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…king Add weighted random combat role selection (50% melee, 25% ranged, 25% mage) with full gear equip/cleanup lifecycle in DuelOrchestrator. DuelCombatAI now receives its combat role and adapts style switching accordingly. Fix two bugs preventing mage agents from attacking: 1. Combat state key mismatch: CombatStateService syncs abbreviated keys (data.c/data.ct) but getGameState() only read full keys (data.inCombat/ data.combatTarget), so DuelCombatAI always saw inCombat=false and flooded executeAttack every tick instead of letting auto-attacks drive combat. 2. Async TOCTOU race in handleMagicAttack: cooldown was checked early but claimed after the async consumeRunesForSpell call. With bug 1 flooding attacks, two concurrent invocations could both pass the cooldown check before either claimed it. Moved cooldown claim and enterCombat before the async rune consumption to close the race window. Also removes stale planning docs and debug images.
…aming-audit-remediation Resolve manifest conflict by deleting model-bounds.json — manifests are sourced from the separate HyperscapeAI/assets repo.
…audit-remediation fix(duel): add ranged/mage combat roles and fix mage agents not attacking
# Conflicts: # packages/server/world/assets/manifests/gathering/woodcutting.json
…resolve client exception
The npm override for playwright (>=1.55.1) conflicted with the direct dependency (^1.55.1) in Cloudflare's build environment, causing EOVERRIDE error during deployment.
Enable the build-app workflow to build native desktop and mobile apps for Tauri-based releases on Windows, macOS, Linux, iOS, and Android.
The job-level 'if' condition cannot reference matrix variables as the matrix context is not available until the job runs. Remove the desktop build filtering to fix workflow parsing errors.
The job-level 'if' condition cannot reference matrix variables as the matrix context is not available until the job runs. Remove the desktop build filtering to fix workflow parsing errors.
- Add keep-alive re-engagement in DuelCombatAI to prevent agents idling when combat state times out (2H sword fix) - Propagate weapon type (mage/ranged/melee) through DuelOrchestrator into startCombat so correct attack speeds are used - Add rune inventory readiness polling and rune validation bypass for duel bot agents - Guard against state starvation from repeated startCombat resets on slow weapons - Refresh combat timeout after ranged/magic attacks in both CombatSystem and CombatTickProcessor - Bypass PvP zone checks for streaming duel combatants - Block aggro and chase on players in safe zones via AggroSystem
…rd-fixes fix(duel): fix mage staff and 2H sword combat in streaming duels
Fix two pre-existing bugs in the IndexedDB processed model cache:
1. Missing objects (e.g. altars): serializeNode used findIndex-by-name
to map hierarchy nodes to mesh data. Models with duplicate mesh names
(common: "", "Cube", "Cube") all resolved to the same index. During
deserialization, Three.js add() auto-removes from previous parent,
so only the last reference survived. Fixed by using a Map<Object3D, number>
identity map built during traversal.
2. Lost textures (white/wrong colors after restart): textures were serialized
as ephemeral blob: URLs but never reloaded during deserialization.
Fixed by extracting raw RGBA pixels via canvas getImageData (synchronous)
and restoring as THREE.DataTexture — no async loading race conditions.
Also fixes grey tree materials: createDissolveMaterial used instanceof
MeshStandardMaterial which fails for MeshStandardNodeMaterial in the
WebGPU build. Replaced with duck-type property check.
Additional improvements:
- localStorage.setItem('disable-model-cache', 'true') to bypass cache
- Error logging on IndexedDB put/transaction failures
- Bumped PROCESSED_CACHE_VERSION to 3 to invalidate broken entries
Co-authored-by: Cursor <cursoragent@cursor.com>
- Fix mobType always undefined in getNearbyEntities: setProperty() stores in entity.config.properties, not entity.data — add fallback to read from entityConfig.properties.mobType so warchief/barbarian are correctly distinguished during kill stages - Fix attack cancel-requeue loop: pickQuestAction issued a new attack command every 8s tick, which cancelled the pending walk-to-target via requestServerAttack/cancelPendingAttack before the agent could close the distance — add 15s cooldown (lastAttackCommandAt/TargetId) so the walk completes before re-issuing All 10 quests now complete; DESTINY advancing to skill grinding
Author
|
- Fix mobType always undefined in getNearbyEntities (stored in entity.config.properties, not entity.data) — mobs now correctly identified for kill stage targeting - Fix attack cancel-requeue loop: add 15s cooldown per target so walk-to-attack completes before re-issuing requestServerAttack - Fix findMobForQuest to use exact mobType match (barbarian_warchief no longer matches barbarian kill stage) - Fix moveTowardMobType includes() matching navigating agent to wrong mob - Add barbarian/warchief spawning for intermediate quest camps - Fix QuestSystem missing RUNECRAFTING/CRAFTING/FLETCHING_COMPLETE subscribers - Fix gathering: stop player movement before starting gather session - Fix ore/fish resource variants (were falling back to tree_normal) - Fix ore_essence 100% mining success rate - Fix inventory management during quest gather stages (drop non-target ores) - Fix pickup filter to ignore non-target ores during iron ore quest stage - All 10 quests verified working end-to-end with DESTINY agent
7af5e53 to
4ced785
Compare
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.
Adds a connected quest arc bridging the 7 starter quests into mid-game combat and smithing progression.
NPCs reference each other by name across the arc. Each quest completion hands the player off to the next NPC. Adds barbarian_warchief boss NPC (level 28, health 45, aggressive, respawns every 200 ticks).