Skip to content

Unofficial Dominion Assistant (turn counter, coffers, villagers, etc). React. Typescript.

License

Notifications You must be signed in to change notification settings

Digital-Defiance/DominionAssistant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Codacy Badge

Unofficial Dominion Assistant

Welcome to the Unofficial Dominion Assistant, a React application designed to enhance your gameplay experience for the popular card game, Dominion! This tool provides comprehensive features for game management, scoring, and player interaction, allowing Dominion enthusiasts to focus on strategy and enjoyment.

Disclaimer for End Users

Please note that the Unofficial Dominion Assistant is not affiliated with or endorsed by the makers of Dominion or Donald X Vaccarino. This application is a fan-built project created to enhance your gameplay experience and requires ownership of the physical Dominion game to use. It does not allow you to play without having the original game. The use of the Dominion logo is intended solely for personal use to support the Dominion community and should be considered under the Fair Use Doctrine.

Fair Use Doctrine

Under 17 U.S.C. § 107, fair use allows limited use of copyrighted material without requiring permission from the rights holders. Factors to consider include:

  • The purpose and character of the use (e.g., educational, non-commercial).
  • The nature of the copyrighted work.
  • The amount and substantiality of the portion used.
  • The effect of the use on the potential market for the original work.

Case References:

  • In Campbell v. Acuff-Rose Music, Inc., 510 U.S. 569 (1994), the U.S. Supreme Court emphasized that transformative uses of copyrighted material could qualify as fair use.
  • In Lentz v. Morrow, 104 Cal.App.3d 392 (1980), the court upheld that using copyrighted material in a manner that requires the original for use is less likely to infringe on the copyright holder’s rights.

Our application, as a fan-built tool that does not replicate the game, could be argued as transformative.

Features

  • Player Management: Easily add, remove, and track multiple players
  • Dynamic Scoring: Real-time score calculation and leaderboard
  • Game Setup Wizard: Customizable options for various game modes and expansions
  • Turn Tracking: Keep track of player turns and phases
  • Detailed Game Log: Record and review game events and card plays
  • Expansion Support: Compatibility with various Dominion expansions and game mats
  • Save/Load Games: Ability to save game progress and resume later
  • Intuitive UI: User-friendly interface with Material-UI components

This is an NX project created with create-nx-workspace.

Getting Started

Prerequisites

  • Node.js (version 20.9.0 or higher)
  • yarn (version 1.22.22 or higher)
  • NX CLI

Installation

  1. Clone the repository:

    git clone https://github.com/Digital-Defiance/DominionAssistant.git

From here you may follow the instructions below or jump to the section on Dev Container usage.

  1. Install dependencies

    yarn install
  2. Start the app

     yarn start

A popup should offer to open the application in a browser.

Visual Studio Code Dev Container Preqrequisites

Development with VS Code Dev Container

  1. Clone the repository:

    git clone https://github.com/Digital-Defiance/DominionAssistant.git
  2. Open the project folder in Visual Studio Code.

  3. Set up .env:

  1. When prompted, click "Reopen in Container" or use the command palette (F1) and select "Remote-Containers: Reopen in Container".
  2. VS Code will build the dev container and set up the environment. This may take a few minutes the first time.
  3. Once the container is ready, open a new terminal in VS Code and run:
    yarn install
  4. Start the app:
    yarn start

A popup should offer to open the application in a browser.

Preferred Development Environment

We highly recommend using Visual Studio Code Dev Containers/Docker for a consistent and isolated development environment. This ensures that all dependencies and configurations are standardized across different development setups.

The devcontainer.json postCreateCommand will run through setup of NVM to select a desired version of Node, perform the yarn install, and install the nx cli globals.

Usage

Once the application is started with yarn start-

The app consists of several main screens:

  1. Home Screen
  2. Dominion Assistant (main game screen)
  3. Game Log
  4. Load/Save Game

Navigate through these screens using the tab bar at the bottom of the app.

To start a new game:

  1. Add player names
  2. Set game options (including expansions and special rules)
  3. Start the game and use the interface to track scores, turns, and game events

Development

Other commands available:

  • yarn start: Starts the development server
  • yarn build: Builds the app using NX
  • yarn test:jest: Runs Jest tests
  • yarn test:jest:single: Runs a single specified test (eg yarn test:jest:single src/game/tests/dominion-lib-load-save-saveGame.spec.ts)
  • yarn test:playwright: Runs playwright e2e tests
  • yarn test:playwright:report: Shows the playwright report
  • yarn lint:eslint: Runs ESLint
  • yarn lint:eslint:fix: Runs ESLint with auto-fix option
  • yarn lint:prettier:fix: Runs Prettier to format various file types
  • yarn clean: Removes dist/coverage directories
  • yarn reset: Removes node_modules, dist, coverage, and runs yarn install again

Contributing

We welcome contributions to Dominion Assistant! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License.

Acknowledgments

  • The creators of Dominion for inspiring this project
  • React and NX for providing the development framework
  • Material-UI for the component library
  • Digital Defiance and Jessica Mulein for facilitating and creating this work

Learn more

To learn more about developing your project, look at the following resources:

Join the community

Join our community of developers.

  • Digital Defiance: 501c3 Non Profit Open Source Engineering Guild, with our own Discord.

About

Unofficial Dominion Assistant (turn counter, coffers, villagers, etc). React. Typescript.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages