Skip to content

Commit

Permalink
modifs from main
Browse files Browse the repository at this point in the history
  • Loading branch information
notV4l committed Nov 25, 2024
1 parent a8cd265 commit bcc36ec
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 21 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
74 changes: 53 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![Dope Wars Banner](.github/banner-wide.png)
![Dope Wars Banner](.github/banner-wide-dw.png)

# Dope Wars

Expand Down Expand Up @@ -78,37 +78,69 @@ TBD

## Mechanics

As in the original, players will land in Dope Wars locations, arbitraging the price of drugs in an attempt to stack paper and own the streets.
As in the original Drug Wars, players will land in a fictional NYC, arbitraging the price of drugs in an attempt to stack paper and own the streets.

RYO extends the core game mechanic of arbitraging drugs in different neighborhoods to a multiplayer environment where each player’s actions affect the in-game economy, creating a competitive and evolving environment. During each turn, a player will travel to a neighborhood, review the current market prices for drugs, and decide to Buy or Sell. After each turn is complete, the market prices will be affected by the previous player’s turn, adding a new layer of strategy to the game. Random events affect prices between turns to avoid making the game too deterministic.
Dope Wars extends the core game mechanic of arbitraging drugs in different neighborhoods to a multiplayer environment where each player’s actions affect the in-game economy, creating a competitive and evolving environment. During each turn, a player will travel to a neighborhood, review the current market prices for drugs, and decide to Buy or Sell. After each turn is complete, the market prices will be affected by the previous player’s turn, adding a new layer of strategy to the game. Random events affect prices between turns to avoid making the game too deterministic.

### Game Loop

The following game loop is repeated until the end condition of the game is reached:

```mermaid
flowchart TD
A[Join game lobby] -->|Deposit fee + Commit to Loadout| B[Wait for Start]
B --> |Markets initialized, Loadout revealed|C[Arrives at random location]
C --> |Buys / Sells drugs on local markets|D[Select next location to travel to]
D --> |Player travels without incident|END[Turn ends]
D --> F[Player is Mugged]
F --> F1[Pay]
F --> F2[Run]
F2 --> F12[Win] --> END
F2 --> L[Lose]
L --> |Player loses their stash|END
D --> G[Chased by Cops]
G --> F1[Pay]
G --> F2[Run]
F1 --> F12
F1 --> L
END --> |Market prices update|C
graph TB
J{{Join game lobby}} -->|Deposit fee + Commit to Loadout| B[Wait for Start]
B --> |Markets initialized, Loadout revealed|TS
TS[Turn Sarts] --> TsN
TsN([Player at Location])
TsS([Player is in the Shop])
TsN --> Trade{{Buys / Sells drugs on local markets}}
Trade --> Travel{{Select next location to travel to}}
Travel --> Safe[/Player travels without incident/]
Travel --> E[/Player Encounters Gang / Cops/] --> ED
TsS --> Shop{{Player Can Buy an Item}}
subgraph Encounter
ED{{Select Pay / Run / Fight}}
ED --> CP[Pay] & CF[Fight\n] & CR[Run]
CP --> |Pay Them Off|Op([Paid])
CR --> |Escapes|Oe([Escaped])
CR --> |Gets Caught|Oc([Captured])
CF --> |Wins Fight|Ov([Victorious])
CF --> |Looses Fight|Oc
Oc --> Oc0>Loose Some Health]
Oc0 --> Oc1[/Has Some Health Left/]
Oc0 --> Oc2[/Has None Health Left/]
Oc1 --> ED
Oc2 --> Od([Dead])
Op --> L>Loose some drugs / money]
Oe --> R>Location gets Randomised]
Ov --> W>Gain Some Money]
end
Shop --> ET[End Travel]
Safe --> CS[Check if Shop is Open\nShop opens every nth turn]
L --> CS
R --> CS
W --> CS
Od --> GO[Game Over]
CS --> SO[/Shop Open/] --> TsS
CS --> SC[/Shop Closed/]
SC --> ET --> MU>Markets Update] --> TE[Turn Ends] --> TS
```

### Future improvements

Currently, game initialization state is hidden during the `join` phase, players commit to a loadout (i.e. their weapons, clothing, etc) and reveal it upon their first turn. Once the game has begun, market state is randomly initialized (each location contains a constant product market) and players can start the game loop. Market state is transparent, players can view the prices at other locations as well as other player balances.

- Player inventories should be hidden until the game end condition is reached, at which point, they would reveal their current inventory
- Mugging is currently PVE, eventually, it would be cool to do it PVP, in which case, the mugger should not know the loadout of their target until the mugging is performed. Ideally there is a mechanism to force the "mugger" and "muggee" to reveal their loadout. See https://github.com/FlynnSC/zk-hunt#search
- Mugging is currently PVE, eventually, it would be cool to do it PVP, in which case, the mugger should not know the loadout of their target until the mugging is performed. Ideally there is a mechanism to force the "mugger" and "muggee" to reveal their loadout. See https://github.com/FlynnSC/zk-hunt#search
Binary file modified assets/cover.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit bcc36ec

Please sign in to comment.