import { AreanNetMgr } from "../../module_arean/scripts/AreanNetMgr";
import { IAreanPlayer, IAreanSelectCard, IAreanUserCard } from "../../module_basic/shared/protocols/public/arean/AreanTypeDef";


export class AreanPlayer {
  /**
   * 玩家名字
   */
  name: string;

  /**
   * 是否准备好
   */
  isReady: boolean;
  /**
   * 玩家ID(每次进入房间都会不一样)
   */
  playerId: number;


  /**
   * 英雄
   */
  heroId: number;

  /**
   * 职业
   */
  careerId: number;

  /**
   * 血量
   */
  bloodVolume: number;


  /**
 * money
 */
  money: number;


  /**
   * 卡牌列表
   */
  cardList: IAreanUserCard[];

  /**
   * 选卡列表
   */
  selectCardList: IAreanSelectCard[];


  /**
   * 等级
   */
  lv: number;

  /**
   * 经验
   */
  exp: number;

  /**
   * 锁定列表
   */
  listLock: boolean




  constructor(player: IAreanPlayer) {

    this.onPlayerDataChange(player);
  }

  /**
   * 修改角色所有属性
   * @param _player 
   */
  onPlayerDataChange(_player: IAreanPlayer) {
    //console.log("onPlayerDataChange",_player, _player.moraleLevel,_player.currSeatCount);
    this.name = _player.nickname;
    this.isReady = _player.isReady;
    this.playerId = _player.playerId;
    this.heroId = _player.heroId;
    this.careerId = _player.careerId;
    this.bloodVolume = _player.bloodVolume;
    this.money = _player.money;
    this.cardList = _player.cardList;
    this.selectCardList = _player.selectCardList;
    this.lv = _player.lv;
    this.exp = _player.exp;
    this.listLock = _player.listLock;
  }


  /**
   * 准备
   * @param isReady 
   */
  public setReady(isReady: boolean) {
    AreanNetMgr.inst.sendMsg_StartGame();
  }


}