Giter Club home page Giter Club logo

stp-22-server's People

Contributors

clashsoft avatar

Stargazers

 avatar

stp-22-server's Issues

Data Model Improvements

  • User status - maybe allow "away", "do-not-disturb" - not intending to build a messenger
  • User name - max length 32
  • Group - custom name - not intending to build a messenger
  • Message body - max length increase to 16k instead of 4k (user avatar is 16k)
  • Game - remove members - useful and makes it way easier to display initially and on changes.
  • Game name - max length 32
  • Game password - min length - no password or stuff like "a" is fine :)

Release 4 Features

  • Predefined maps
    • Add endpoints for Map creation
    • Allow setting map ID in game settings
    • Generate missing elements
    • Can be upvoted
  • Development Cards
    • Can be bought
    • Cannot be played in the same round in which they were bought
      • Exception: Victory Points are effective immediately
    • Can be revealed to trigger an effect
      • Knight card - lets the player move the robber
      • Road Building - player can place 2 roads as if they just built them
      • Year of Plenty - the player can draw 2 resource cards of their choice from the bank
      • Monopoly - player can claim all resource cards of a specific declared type
    • Victory Point card - 1 additional Victory Point is added to the owners total and doesn't need to be played to win.
    • Largest Army - The player with the most knights (at least 3) gains 2 victory points.
  • Extension: Seafarers
  • Move history
    • Save moves in database
    • Add endpoint for getting all moves

Release 3 Inaccuracies

  • The longest trade road is granted to noone if two players have roads of the same length.

Release 3 Features

  • Game Options
    • Configurable map size
    • Configurable victory points
  • Spectator mode
  • Ingame
    • Generate harbors
    • Trading - see below.
    • Robber - see below.
    • Victory point tracking (from settlements/cities)
    • Longest road victory point tracking

Trading System

  • Add a new trade action that is expected before build after roll, with an optional object with demands and offers. If empty, skip to build: {action: 'trade', trade: {offer: {grain: 1}, request: {wool: 2}}}
  • Bank/harbor trades can be made by adding partner: '684072366f72202b72406465' to the trade object and will be processed instantly if valid.
  • After the initial trade, any player may make a counter offer or accept the trade: {action: 'trade', partner: '507f191e810c19729de860ea'}
  • The person whose turn it is can accept a trade, make a completely new offer, or no offer to skip to build.

Robber

  • When someone rolls a 7, everyone with more than 7 cards may send a drop action to remove their additional cards: {action: 'drop', resources: {grain: 1}}
  • The person who rolled the 7 can then select a field and a player with a settlement or city adjacent to that field: {action: 'rob', rob: {x: 0, y: 0, z: 0, target: '507f191e810c19729de860ea'}}

Release 1 Features

  • Users
  • Games
  • Game members
  • Auth: login, logout, refresh
  • Message groups
  • Messages
  • Rate limit
  • Event socket

Release 2 Features

  • User editing - nothing to be done.
  • Ingame
    • Generate map: tiles, number plates
    • Founding phase
    • Game loop: roll, receive resources, build

Release 2 Inaccuracies

A test game revealed some rule inaccuracies:

  • The first roads is placed directly after the first settlement.
  • The founding roll only determines the beginner with the highest score, the other rolls are irrelevant since the next settlements are placed in "clockwise" player order and then "anticlockwise".

    Since there is no "table" that would determine "clockwise" order, and using member join order is unfair may lead to metagaming, I decided to keep this deviation from the rules.

  • The 2nd settlement grants the initial resources, not the 1st.

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.