Documentation

Building a game

Abilities and quiz

Updated 2026-11-03

Abilities and quiz

Abilities

Abilities are keyword-driven and stored in versioned definitions.

  • Conditions can depend on attributes, environment, group or state.
  • Effects can add or replace scores, modify variance, grant currency or chain.
  • Rarity determines the number of slots per card (1/1/2/2/3).
  • A profile cap limits how many abilities a card can carry.
  • Economy effects are bounded by per-race gold/XP caps.
  • Activations and non-race hooks are audited.
  • The trial result carries an ability trace.

The admin Abilities resource validates the JSON definition strictly and bumps the version on change. The collectible edit page attaches abilities with slot validation.

Quiz

Six question types are supported: choice, multiple choice, true/false, text, ordering and matching.

  • QuizScorer and QuizNormalizer are deterministic.
  • Scoring is correctness-first.
  • Strict authoring rejects duplicate option keys, missing or multiple correct options (unless allowed) and invalid specs.
  • Mastery and spaced repetition schedule reviews.
  • Error monsters track recurring mistakes.
  • Timed sessions are server-issued with a nonce and expiry; the server remains authoritative.
  • Question and option order are shuffled server-side; a set can serve a random sample.
  • Per-question attempt caps and fast-answer detection feed the anti-cheat scan.
  • Submitted answers are never logged.

Admin

  • Quiz sets and Quiz questions resources.
  • Preview action for a question.
  • Mechanics exposes the quiz timer.
  • Feature settings has the global quiz and timed-trial switches.
  • Anti-cheat page and anti-cheat:scan report findings; no automatic sanction.

Client

The Flutter client parses abilities and shows a tooltip panel. The quiz screen supports choice, text, ordering and matching input, shows the countdown and submits idempotently.

Commands

php artisan anti-cheat:scan
php artisan animalia:simulate:abilities

Next steps