Implement personal storage chest with store, retrieve, and storage commands #249
Labels
No labels
Blocked
Duplicate
MoSCoW/Could Have
MoSCoW/Must Have
MoSCoW/Should Have
Points/1
Points/13
Points/2
Points/21
Points/3
Points/5
Points/8
Priority/Backlog
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
State/Completed
State/In progress
State/In review
State/Paused
State/Unverified
State/Verified
State/Wont Do
Type/Bug
Type/Epic
Type/Feature
Type/Legendary
Type/Task
Type/Testing
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#212 Epic: Storage & Trade
aethyr/Aethyr
Reference: aethyr/Aethyr#249
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Metadata
feature/m4-personal-storage-chestImplement personal storage chest with store, retrieve, and storage commands (#249)Background and Context
As the crafting and harvesting systems generate more items, players need a dedicated storage mechanism beyond their personal inventory. The personal storage chest is a container object that can be placed in the player's home or accessed at a bank location. It provides bulk storage for resources, crafted items, and other valuables.
The storage chest is also the target for the devotee auto-deposit feature — devotees assigned to harvest will deposit their gathered resources directly into the player's storage chest. This makes the storage chest a critical hub in the resource economy.
Expected Behavior
StorageChestgame object that acts as a container. It is associated with a specific player (owner) and has a configurable capacity limit (number of item stacks).store <item>Command: When a player is in the same room as their storage chest, they can store an item from their inventory into the chest. If the chest is full, an appropriate message is displayed.retrieve <item>Command: The player can retrieve an item from the chest back to their inventory. If the item is not in the chest, an appropriate message is displayed.storageCommand: Lists all items currently in the player's storage chest with names, quantities, and quality tiers. Shows current capacity usage (e.g., "15/50 slots used").Acceptance Criteria
StorageChestclass exists as a game object with an owner, capacity limit, and item container.store <item>moves an item from the player's inventory to the chest if capacity allows.store <item>displays an error if the chest is full.retrieve <item>moves an item from the chest to the player's inventory.retrieve <item>displays an error if the item is not in the chest.storagelists all items in the chest with names, quantities, quality tiers, and capacity usage.Subtasks
StorageChestclass extending the game object hierarchy with owner, capacity, and item storage.store <item>command handler with capacity checking.retrieve <item>command handler with item lookup.storagecommand handler to list contents with details.tests/unit/personal_storage_chest.featurecovering store, retrieve, storage list, capacity limit, owner access control, non-owner denial, persistence.tests/integration/for storage chest creation, usage, and persistence.bundle exec rake unit_profileand verify no performance regressions.bundle exec rake unit. If coverage is <97% then review the current unit test coverage report atbuild/tests/unit/coverage/and use it to write new Cucumber based unit tests to improve code coverage. Specifically, write Cucumber/Gherkin style unit tests that are descriptively named and specifically improve coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerunbundle exec rake unitto verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%.bundle exec rake(default task: unit tests with coverage) andbundle exec rake integration, fix any errors if needed ensuring both pass across entire code base, do not ignore any failure even if it seems unrelated to this commit, fix it.Definition of Done
This issue is complete when:
master, reviewed, and merged before this issue is marked done.