GithubHelp home page GithubHelp logo

averycrespi / thinktank Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 4.0 2.56 MB

A 2-player strategy game inspired by Conundrum

Home Page: https://thinktank.crespi.dev

License: MIT License

HTML 2.33% TypeScript 96.82% CSS 0.85%
board-game strategy-game boardgame-io react typescript papercss

thinktank's People

Contributors

averycrespi avatar dependabot[bot] avatar joematune avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

thinktank's Issues

Add second server for development

  • dev.thinktank-server.averycrespi.com
  • Disables CORS (origin: *)
  • Serve on different port
  • Use second copy of git repo (thinktank-dev)

Tasks

Singleplayer:

  • End the game when a home piece is destroyed
  • Change infiltrator AoE to all adjacent cells
  • Rename and reorganize components
  • Move game.js into logic/
  • Move Hand into Selector (show token counts)
  • Refactor Hand into a class? set, increment, decrement ops (no need for ! operator)
  • Set most props as readonly
  • Remove History (for now...)
  • Convert G to a serializable object
  • Write logic/ unit tests

Multiplayer:

  • Add server.ts and yarn serve script
  • Write lobby API client

Remove event log

  • TODO: figure out a way to integrate a proper history that can be moved through

Implement match rejoining

  • Save recent (last 10?) [matchID, player, credentials]objects to local storage
  • Check local storage for credentials before calling JoinMatch

Add music with mute button

  • Mute/unmute button in top right/left
  • Royalty-free: battle, strategy themed? chill?
  • TODO: which pages should it play on? game only?

v1.0.0 release checklist

  • Final tweaks and playtesting
  • Update package.json version
  • Merge develop into master
  • Publish v1.0.0 to NPM
  • Publish GitHub release
  • Send project PR to boardgame.io

Fix game rendering on mobile devices

  • Currently, the game doesn't render well on mobile devices
  • We should properly use Bootstrap responsive grids to fix this
  • Related: removal of sidebars (events)

Add game history

  • Add history: Array<string> to G
  • Update history on: place, move, rotate, capture, shoot, explode, gameover
  • Render history in sidebar panel

Connecting screen immediately exits without waiting for opponent

Steps to reproduce

  1. visit https://thinktank.crespi.dev
  2. click [Create Private Match]

This screen flashes on screen for a fraction of a second:

screenshot

Then the game starts without waiting for an opponent

System:

  • Google Chrome is up to date. Version 85.0.4183.121 (Official Build) (64-bit)
  • Windows 10 Pro 1909 18363.959

Same behavior using alternate browser through different IP

  • Tor Browser 10.0 (based on Mozilla Firefox 78.3.0esr) (64-bit)

Add support for rematches

Playing again
POST /games/{name}/{id}/playAgain

{name} (required): the name of the game being played again.

{id} (required): the ID of the previous finished room.

Given a previous room, generates a room ID where users should go if they want to play again. Creates this new room if it didn’t exist before.

Accepts these parameters:

playerID (required): the player ID of the player on the previous game.

credentials (required): player’s credentials.

numPlayers (optional): the number of players. Defaults to the numPlayers value of the previous room.

setupData (optional): custom object that was passed to the game setup function. Defaults to the setupData object of the previous room.

Returns nextRoomID, which is the ID of the newly created room that the user should go to play again.

Add Conundrum expansion content

  • The Conundrum expansion content includes the teleporter
  • Blocked by: physical access to game
  • TODO: make expansion optional?

Improve event log

Ideas:

  • [ ] Add turn counter
  • Add colours to events
  • Add tokens to events

Add undo/submit logic

  • Player can tentatively make move (and see what would happen)?
  • Undo button resets to "real" current state, only clickable if move has been made
  • Submit button confirms current move, only clickable if move has been made

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.