onecrayon / onecrayon/api.ashes.live
Feature: Chimera card listing
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 13
- Forks
- 7
- Avg merge
- 7h 39m
- Merged PRs (30d)
- 1
Description
This should be forwards-compatible with Dragonborn, so need to review those spoiled cards to make sure of this format before implementing. But the general idea is to store "enemy" cards alongside player cards, originally just supporting listings but eventually maybe supporting creating custom "decks" or campaigns per #89.
Model changes
New model: Enemy
identity_idnamestubrelease_idenemy_type(e.g. "chimera" vs. "dragonborn")
Need to review Chimera vs. Dragonborn to figure out how to associate behavior, difficulty, threat setups, etc.
Card
- Add column
enemy_idas a nullable foreign key to the new Enemy model - Add generated property
is_enemy_cardbased on whether we are associated with a particular enemy; or make this a boolean field in the database?
Code changes
- Revise all card fetching logic to look for non-enemy cards when working with player cards
- Add flag to the cards listing to be able to return enemy cards
- Add filtration support to card listing to be able to view enemy cards of a specific enemy and/or aspect
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing card-fetching and card-listing entry points, then compare the Chimera and Dragonborn formats and inspect issue #89 for the future deck or campaign context. Done means enemy cards can be represented separately from player cards and the listing supports an enemy flag plus enemy and aspect filters without changing player-card results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend, database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100