# Source: server/src/client-server-shared/def/constants.js

    import * as typedefs from 'def/typedefs';
    /**
     * @namespace constants
     */

    // Positions of heroes in game
    /**
     * @constant
     * @type {typedefs.HeroPosition}
     * @default
     * @memberof constants
     */
    export const JOJO = 'camp';
    export const Constants = {
      //  Server requests status
      REQ_IDLE: 'idle',
      REQ_REQUESTED: 'requested',
      REQ_SUCCESS: 'success',
      REQ_ERROR: 'error',

      // Positions of heroes in game
      /**
       * @constant
       * @type {typedefs.HeroPosition}
       * @default
       * @memberof constants
       */
      POS_PILE: 'pile',
      POS_HAND: 'hand',
      POS_DISCARD: 'discard',
      POS_CAMP: 'camp',
      POS_BATTLE_LEFT: 'battle_left',
      POS_BATTLE_CENTER: 'battle_center',
      POS_BATTLE_RIGHT: 'battle_right',

      // Possible hero actions in game
      HERO_RECRUIT: 'recruit',
      HERO_DEPLOY: 'deploy',
      HERO_MOVE: 'move',
      HERO_ABILITY: 'ability',
      HERO_DISMISS: 'dismiss',
      HERO_DISCARD: 'discard',
      HERO_REPLACE: 'replace',

      // Possible actions for player in game
      PLAYER_SUPPLY: 'supply',
      PLAYER_PASS: 'pass'
    };

    Constants.install = function(Vue) {
      Vue.prototype.$types = key => {
        return Constants[key];
      };
    };