<?php

namespace loyalsoft;

/**
 * Description of StoreModel
 * 玩家背包/仓库数据模型
 * @author gwang
 */
class Info_Store extends Object_ext {

    /**
     * 其他道具
     * @var array
     */
    public $items;

    /**
     * 任务卡道具(存在叠加) 
     * @var array
     */
    public $taskcards;

    /**
     * 装备, 能强化升级, 独立于其它道具
     * @var type
     */
    public $equipment;

    /**
     * @var 言灵,能强化升级, 独立于其它道具
     */
    public $yanling;

    /**
     * 宝箱
     * @var array
     */
    public $boxes;

    /**
     * 英雄碎片,叠加
     * @var object
     * @deprecated since version 0
     */
    public $segement;

    /**
     * 玩家注册时初始化
     */
    public function initialize() {
        $this->boxes = GameConfig::primordial_data()->User_Store_boxes;
        $this->taskcards = ObjectInit();
        $this->items = JsonUtil::decode(GameConfig::primordial_data()->User_Store_items);         # 初始含有一张黄金通知书
        $this->equipment = JsonUtil::decode(GameConfig::primordial_data()->User_Store_equipment); # 装备初始化数据
        $this->yanling = JsonUtil::decode(GameConfig::primordial_data()->User_Store_yanling);     # 言灵初始化数据
        $this->segement = JsonUtil::decode(GameConfig::primordial_data()->User_Store_segment);    # 碎片
    }

    /**
     * 返回指定物品的数量
     */
    function GetItemCount($typeId) {
        if (property_exists($this->items, $typeId)) {
            return $this->items->$typeId;
        }
        return 0;
    }

    /**
     * 扣除玩家碎片 
     * @param int $segmentId 碎片ID
     * @param int $amt  数量
     * @return boolean true 成功, false 失败
     */
    function Consume_HeroSegment($segmentId, $amt) {
        if ($amt > 0) {
            if (CommUtil::isPropertyExists($this->items, $segmentId)) {
                if ($this->items->$segmentId - $amt >= 0) {
                    $this->items->$segmentId -= $amt;
                    return true;
                }
            }
        }
        return false;
    }

}
