Browse Source

Initial research

main
Holly McFarland 11 months ago
commit
f3b4b462fc
2 changed files with 78 additions and 0 deletions
  1. +3
    -0
      README.md
  2. +75
    -0
      RESEARCH.md

+ 3
- 0
README.md View File

@ -0,0 +1,3 @@
# Mario's Puzzle Party
Repo for research and possible reimplementation of Mario Party minigame Mario's Puzzle Party

+ 75
- 0
RESEARCH.md View File

@ -0,0 +1,75 @@
# BASICS
- Controls:
- Move held object left and right
- Soft drop
- Hard drop
- Flip held domino
- 4x10 matrix
- Implemented as 4x20, pieces can be 1/2 tall and offset vertically by 1/2
- Visually shown as 4x10 with half blocks, and game mechanics are defined that way
- Next queue: 1 long
- Piece generation shared between players; all get same queue
- Thwomp can be skipped (see [piece generation](#piece-generation)) but queue remains synced after
# PIECE BEHAVIOUR
- Pieces are 2-colour vertical dominos and occasional 2x2 thwomps
- All domino colours:
- White
- Purple
- Blue
- Yellow
- Pink
- Green
- Dominos can be flipped but not rotated
- When two or more blocks that share a colour are touching, clear them
- Gravity applies in immediately, combos are possible
# PIECE GENERATION
- Pieces appear fully inside the matrix
- Spawn location priority:
- Column 2, unless top 2 cells are not empty
- Column 3, unless top 2 cells are not empty
- Column 1, unless top 2 cells are not empty
- Column 4, unless top 2 cells are not empty
- Top out
- Presumably, thwomp could cause top out if column 1+3 or 2+4 do not have 2 empty cells? TODO research exact conditions
- Game skips thwomp if it would cause a top out. Is it possible to have a board that *could* fit thwomp when it's generated for next queue, then block it with current piece?
# THWOMP BEHAVIOUR
- When placed, starts crushing columns it landed on to 1/2 size
- Block clears not checked until after thwomp is finished crushing
- Crush procedure algorithm: (TODO there must be a better way to explain this)
- For both halves of the thwomp:
- If that half of thwomp is touching the stack below it:
- If that column is fully squished (all blocks are 1/2 size):
- Thwomp disappears, end of algorithm
- For both halves of the thwomp:
- If that half of thwomp is touching the stack below it:
- Find lowest unsquished block in that column
- That block becomes 1/2 size
- All blocks above it fall by 1/2 cell
- If other half of thwomp is not touching stack:
- Thwomp falls by 1/2
- Jump to top of algorithm
# GARBAGE BEHAVIOUR
- Garbage (brick) 1x1 blocks sent by attacks
- Sent between pieces from queue
- Cleared if a non-garbage block touching it is cleared
# SCORING
- TODO research
# GARBAGE ATTACKS
- TODO research

Loading…
Cancel
Save