Skip to content

feat(mounts): aerial dragon mounts, flight stamina decay, and breath weapon engine - #206

Open
angelTomo9 wants to merge 2 commits into
Bitcoindefi:mainfrom
angelTomo9:feat-dragon-riding-1787882482645
Open

feat(mounts): aerial dragon mounts, flight stamina decay, and breath weapon engine#206
angelTomo9 wants to merge 2 commits into
Bitcoindefi:mainfrom
angelTomo9:feat-dragon-riding-1787882482645

Conversation

@angelTomo9

Copy link
Copy Markdown

Summary

Implements an aerial dragon mount riding, flight altitude transitions, flight stamina decay, and aerial breath weapon combat engine for OpenAO MMORPG.

Features

  • Dragon species catalog (Infernal Drake, Storm Wyvern, Frost Dragon, Celestial Seraph)
  • Flight altitude state machine (Grounded, Gliding, High Altitude Flight, Emergency Glide Landing)
  • Dynamic stamina consumption and regeneration rates
  • Aerial breath weapon attacks with target armor mitigation
  • Full unit test coverage under Vitest

Comment thread api/src/lib/dragonRidingAirborneAerial.ts
@gitar-bot

gitar-bot Bot commented Aug 28, 2026

Copy link
Copy Markdown
Code Review ✅ Approved 1 resolved / 1 findings

Implements aerial dragon mounts with flight altitude transitions, stamina decay mechanics, and breath weapon combat. The changeAltitude stamina clock reset issue has been addressed.

✅ 1 resolved
Bug: changeAltitude resets stamina clock, discarding accrued drain

📄 api/src/lib/dragonRidingAirborneAerial.ts:91-105
changeAltitude() unconditionally sets mount.lastStaminaDecayEpochMs = currentEpochMs on every successful transition (line 113) without first applying the stamina that should have been consumed/regenerated since the last decay tick. Any time elapsed in HIGH_ALTITUDE_FLIGHT since the previous updateFlightStamina() call is silently wiped out. A client can exploit this by repeatedly toggling altitude state (e.g. HIGH_ALTITUDE_FLIGHT -> GLIDING -> HIGH_ALTITUDE_FLIGHT) to keep resetting the decay timer and fly indefinitely without stamina cost. Call updateFlightStamina(mount, currentEpochMs) at the start of changeAltitude to settle pending decay before mutating the timer.

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Important

Your trial ends in 4 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more.

Was this helpful? React with 👍 / 👎 | Gitar

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.

1 participant