The-Microservice-Dungeon / player-robocop

MIT License
0 stars 0 forks source link

inface frontend - backend (api) #11

Closed OliverWich closed 2 years ago

OliverWich commented 2 years ago

Game

GET /game

{
  "game": {
    "status": "<GameStatus>",
    "playerCount": "<Integer>",
    "maxRounds": "<Integer>",
    "currentRound": {
      "roundNumber": "<Integer>",
      "roundTime": "<TimeStamp>",
      "roundStatus": "<RoundStatus>"
    }
  }
}

Player

GET /player

{
  "player": {
    "name": "<String>",
    "email": "<String>",
    "money": "<Integer>",
    "robots": "<Integer>"
  }
}

Robots

GET /robots

{
  "robots": [
    {
      "health": "<Integer>",
      "energy": "<Integer>",
      "inventory": {
        "coal": "<Integer>",
        "iron": "<Integer>",
        "ruby": "<Integer>",
        "platin": "<Integer>"
      },
      "stats": {
        "STORAGE": {
          "level": "<Integer>",
          "value": "<Integer>"
        },
        "HEALTH": {
          "level": "<Integer>",
          "value": "<Integer>"
        },
        "DAMAGE": {
          "level": "<Integer>",
          "value": "<Integer>"
        },
        "MINING_SPEED": {
          "level": "<Integer>",
          "value": "<Integer>"
        },
        "MINING": {
          "level": "<Integer>",
          "value": "<MiningLevel>"
        },
        "MAX_ENERGY": {
          "level": "<Integer>",
          "value": "<Integer>"
        },
        "ENERGY_REGEN": {
          "level": "<Integer>",
          "value": "<Integer>"
        }
      }
    }
  ]
}

Map

GET /map

{
  "layers": [
    [],
    [],
    []
  ]
}

Length von jedem (inneren) Array (Layer) ist (mapSize * 2)^2. Jeder Planet ist ein Eintrag von links oben bis rechts unten. Die Planeten aus einem Layer Array werden so gerendert (nummer = planetidentifier in diesem Beispiel):

  1   2   3   4
  5   6   7   8
  9   10  11  12
  13  14  15  16

Das Layer Array dazu sieht so aus:

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]

(Dieses Beispiel wäre für eine MapSize von 2) Wir haben Size 15,20,35. Berechnet wie folgt: image

Ein korrekt gefülltes Gravity Layer Array für diesen map state (-1 = nicht erforscht / nicht relevant für dieses layer):

  -1 1  1  2
   2 2  2  2
   1 1  1 -1
   0 0 -1 -1

image sieht so aus:

[-1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, -1, 0, 0, -1, -1]

layers[0] enthält ein Array aus -1, 1, 2, 3 -> Gravity Levels layers[1] enthält ein Array aus -1, 4, 5, 6, 7, 8, 9 -> space station, coal, iron, ruby, gold, platin layers[2] enthält ein Array aus -1, 11 -> robots

Index Reference: 1, 2, 3, 4, 5, 6. 7, 8, 9, 10 Gravity 1, 2, 3; space station, coal, iron, ruby, platin, marker for next move, robot marker image

ghost commented 2 years ago

Die entities für map sind noch nicht da @InstantRegrets