๐Ÿ“ƒInterface Design

State

enum ItemStatus { AVAILABLE, UNAVAILABLE }

class CollectableItem {
  //TBD
}

class State {
  players: {
   player_id:{
     is_finished: boolean
     consumed_time: number
     distance: number
     y_axis: number
     gene: string
     velocity: {
       x_axis: number
       y_axis: number
     }
     items: CollectableItem[]
     //status: TBD
     collected_coins: number
   }
  }
  mystery_boxes: {
    x: number  //distance
    y: number  //y axis (pixel)
    status: ItemStatus
  }[],
  coins: [{
    x: number  //distance
    y: number  //y axis (pixel)
    status: ItemStatus
  }],
}

Action

enum ActionType {USE_ITEM, KEY}
enum KeyId {UP, DOWN}

class Action {
   type: ActionType.USE_ITEM | ActionType.KEY
   // If type == MOVE
   keyId: KeyId.UP | KeyId.DOWN
   // If type == 
   item: number, //use nth item in player's items
   timestamp: number
}

Data

class Data {
        obstacles: {
          type: number
          pattern_id: number
          x: number  //distance
          y: number  //y axis (pixel)
        }[],
       map: {
          length: number
       }
}

Last updated