onecrayon / onecrayon/api.ashes.live

Feature: Chimera card listing

Open
#121 0 comments 0 reactions 0 assignees View on GitHub

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
  • id
  • entity_id
  • name
  • stub
  • release_id
  • enemy_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_id as a nullable foreign key to the new Enemy model
  • Add generated property is_enemy_card based 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.