Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Domain models for starting a game #13

Open
metalalive opened this issue Oct 22, 2023 · 5 comments
Open

Domain models for starting a game #13

metalalive opened this issue Oct 22, 2023 · 5 comments
Assignees
Labels
backend dev For back-end development related to this codebase documentation Improvements or additions to documentation help wanted Extra attention is needed software design

Comments

@metalalive
Copy link
Collaborator

metalalive commented Oct 22, 2023

Discuss the domain layer for starting the game and how they interacts with each other,

Prerequisite

Possible models / entities

The Board

  • Relic deck , places some Relic cards .
  • Player deck , places all available / remaining player cards
    • player cards consists of some Relic cards, 44 Clue cards, and 4 Evil-Stirs cards
    • note Relic cards are split to the 2 decks , depending on number of players in the game
  • Player discard pile , initially empty , collects all discarded player cards
  • Summoning deck , Summoning discard pile , similar usage as player deck above
    • Note the discard decks may not be domain model , the backend server does not need to keep history of discarded cards
  • 7 places specifically for The-Old-One cards
  • map which describes valid locations and paths between them

Reference

Cards

Different types of cards can also be different entities

  • Relic card
  • Clue card
  • summoning card
    • attributes : specific location of map
  • Evil-Stirs card
  • The-Old-One card

Cultist and Shoggoth

  • the game model is responsible to keep track of number of available ones
  • TODO

Turns / Steps / Actions

  • each player takes turn, 3 steps in his / her turn
  • the first step is to do 4 actions , then draw card(s) from Player deck and Summoning deck
  • the game model is responsible to record the order of player turns

Workflow

  • Always choose Cthulhu Card, then randomly chosen 6 cards from rest of the 12 The-Old-One cards
    • Cthulhu Card is placed at the rightmost place, the chosen cards randomly occupy rest of the 6 places
  • Assign some cultists and one Shoggoth to a location of the map , depending on the summoning cards you draw
    • then discard the face-up / drawn summoning cards
  • Each player choose one Investigator Card , and initially has 4 sanity tokens
  • All players initially are moved to train station in Arkham of the map
  • discard number of Clue cards, according to difficulty level previously configured
  • choose some Relic cards , shuffle them with Clue cards, placed the shuffled cards to Player deck
    • place rest of the Relic cards to Relic deck
    • deal some cards from Player deck to each player's hand (hand limit : 8 cards)
  • shuffle all Evil-Stirs cards with the cards in the Player deck , in the way described in the rule book

Anyone is welcome to leave your comment for how we can implement this,
thanks

@metalalive metalalive added documentation Improvements or additions to documentation backend dev For back-end development related to this codebase software design labels Oct 22, 2023
@metalalive metalalive changed the title usecase layer of clean achitecture for retrieving investigator order of specific game use case for starting a game Nov 14, 2023
@metalalive metalalive changed the title use case for starting a game use case and domain for starting a game Feb 7, 2024
@metalalive metalalive changed the title use case and domain for starting a game Domain models for starting a game Feb 23, 2024
@metalalive metalalive self-assigned this Feb 24, 2024
@metalalive
Copy link
Collaborator Author

metalalive commented Feb 24, 2024

I am designing the card model which will be stored in backend server,
and seeking for the detail of each Relic / Clue / Summoning / Evil-Stir card on the internet,
in order to extract essential data to save in backend server.

For example , when flipping over a summoning card, it indicates that one more cultist will be placed to certain location of the map .

So far I got the Figma canvas maintained by @wingtkw , which includes all Summoning cards and The-Old-One cards . Also I read the rule book , it is a user guide so does not reveal enough detail (for this game project development)

My questions :

  • where to find detail of each Relic / Clue card ?
  • does each Clue card only contain name of the town ? and what else is there ?
    • e.g. Dunwich, Kingsport
  • are all Relic cards distinct from each other ? any of them could be duplicate ?
    • answered by myself, a random good guy post this Reddit thread , appreciate his / her comment
    • how does each of them affect / change the game state ? <- I'll spend time studying this
  • does each of the 4 Evil-Stirs cards contain different steps / instructions that changes game state ? and how ?

I guess such information might not be public due to the fact the board game is a commercial product $$ .

Is there anyone who played the game and can share the detail to me ?
will appreciate any reply.

Maybe @wingtkw or @KalpasWang can answer the question ?
Thanks


update

Found play-through video , will spend time checking this out

@metalalive metalalive added the help wanted Extra attention is needed label Feb 24, 2024
@KalpasWang
Copy link
Collaborator

KalpasWang commented Feb 25, 2024

I remember @wingtkw had this game.

also YouTube has some unboxing videos, in both English and Chinese, which might give you some details.

Thank you for your hard work 😊😊😊

@metalalive
Copy link
Collaborator Author

metalalive commented Feb 25, 2024

@KalpasWang ,
if you are still interested with the code contribution to this project,
is it OK for you to help to collect the detail of Evil-Stir cards before wingtkw's reply ??
It will be useful for front-end app development
because players also need to know the instructions on each evil-stir card they draw.

@KalpasWang
Copy link
Collaborator

KalpasWang commented Feb 25, 2024

according to manual, the evil stir cards have following steps:

  1. Fight the madness - Roll the Sanity die.
  2. Awakening - Reveal the next Old One.
  3. A Shoggoth appears - Draw 1 card from the bottom of the Summoning deck and put 1 Shoggoth on the location indicated.
  4. Cultists regroup - Shuffle the Summoning discard pile and put the cards on top of the Summoning deck.

中文版:
1.對抗瘋狂 - 投擲一個神智骰子。
2.甦醒 - 翻開下一張古神。
3.修格斯出現 - 抽取召喚牌庫最底下的1張卡牌,放置1個修格斯模型到卡牌所示的地點。
4.邪教徒重組 - 混洗召喚棄牌堆中的卡牌,將其放到召喚牌庫頂上。

Screenshot_evil-stirs-card

@metalalive
Copy link
Collaborator Author

Thanks Kalpas Wang, I saw that section in rule manual.

I am working on board and the-old-one card setup ,
I'll send a PR for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend dev For back-end development related to this codebase documentation Improvements or additions to documentation help wanted Extra attention is needed software design
Projects
None yet
Development

No branches or pull requests

2 participants