Ejemplo n.º 1
0
    /// <summary>
    /// 钥匙解锁
    /// </summary>
    public void KeyUnlock()
    {
        int id = _goodsDatas[0]._id;

        _configCurrData = WarehouseTool.GetTreasureChestConfig(id);
        WarehouseTool.UnlockTreasureChest(id, Game.Protocal.UnlockTreasureChest.Key, KeyUnlockSucceed);
    }
Ejemplo n.º 2
0
 /// <summary>
 /// 领取宝箱
 /// </summary>
 public void GetAward()
 {
     if (_currDataId != 0)
     {
         WarehouseTool.GetAward(_currDataId, GetAwardAction);
     }
 }
Ejemplo n.º 3
0
    /// <summary>
    /// 批量更新本地新物品标记
    /// </summary>
    /// <param name="goodsDatas"></param>
    public void UpdateItemNewTage(int type)
    {
        List <GoodsData> goodsDatas = new List <GoodsData>();

        // 0:种子 1:果实 2:道具 3:装饰
        switch (type)
        {
        case 0:
            goodsDatas.AddRange(_seeds);
            break;

        case 1:
            goodsDatas.AddRange(_fruits);
            break;

        case 2:
            goodsDatas.AddRange(_gameItems);
            break;

        case 3:
            goodsDatas.AddRange(_decorates);
            break;
        }

        for (int i = 0; i < goodsDatas.Count; i++)
        {
            WarehouseTool.SetGoodsDataNew(goodsDatas[i]);
        }
    }
Ejemplo n.º 4
0
    /// <summary>
    /// 初始化item
    /// </summary>
    /// <param name="data"></param>
    public async void Show(Transform itemTra, CSMailAccessory data, Transform tageRight, Transform tageLeft, bool isGet)
    {
        if (!_isInitial)
        {
            Initial(itemTra);
        }
        _data           = data;
        _gameItemDefine = WarehouseTool.GetGameItemData(_data.GoodsId);
        _showText.text  = StaticData.GetMultilingual(_gameItemDefine.ItemName);
        _number.text    = "X" + _data.GoodsNum;
        _tageRight      = tageRight;
        _tageLeft       = tageLeft;
        //if (isGet)
        //{
        //    _showText.text = "已领取";//StaticData.GetMultilingual(_gameItemDefine.ItemName);
        //}
        //else
        //{
        //    _showText.text = StaticData.GetMultilingual(_gameItemDefine.ItemName);
        //}


        _iconImage.sprite = null;
        _iconImage.sprite = await ABManager.GetAssetAsync <Sprite>(_gameItemDefine.Icon);

        //_iconImage.SetNativeSize();
        _iconTwo.sprite = null;
        _iconTwo.sprite = _iconImage.sprite;
        _iconTwo.SetNativeSize();

        _itemTra.gameObject.SetActive(true);
        ResetAccessoryItemIconPoint();
        Show(false);
    }
Ejemplo n.º 5
0
 /// <summary>
 /// 更新解锁时间
 /// </summary>
 /// <param name="unlockTime"></param>
 public void UpdateUnlockTime(long unlockTime)
 {
     _countDownTime = unlockTime;
     _timeCountDownComponent.Dispose();
     StartCountingTime();
     WarehouseTool.ChangeUnlockTreasureChestID(_currDataId, unlockTime);
 }
Ejemplo n.º 6
0
    /// <summary>
    /// 展示数据
    /// </summary>
    public async void Show()
    {
        GameItemDefine dataDefine = WarehouseTool.GetGameItemData(_currData.GoodId);

        if (dataDefine != null)
        {
            Sprite icon = null;
            try
            {
                icon = await ABManager.GetAssetAsync <Sprite>(dataDefine.Icon);
            }
            catch (Exception er)
            {
                Debug.Log("获取该道具icon失败:" + _currData.GoodId);
            }

            _icon.sprite     = icon;
            _showNumber.text = _currData.GoodNum.ToString();
            _tra.gameObject.SetActive(true);
        }
        else
        {
            Debug.Log("没有该道具配置:" + _currData.GoodId);
        }
    }
Ejemplo n.º 7
0
    /// <summary>
    /// 消耗掉一个对应宝箱
    /// </summary>
    /// <param name="id"></param>
    public void ConsumeTreasureChest(int id)
    {
        GoodsData goodsData = new GoodsData();
        int       key       = 0;
        int       index     = 0;

        foreach (var item in _treasureChestDic)
        {
            for (int i = 0; i < item.Value.Count; i++)
            {
                if (item.Value[i]._id == id)
                {
                    key       = item.Key;
                    index     = i;
                    goodsData = item.Value[i];
                }
            }
        }
        if (goodsData != null)
        {
            goodsData._number = goodsData._number - 1;
            StaticData.UpdateWareHouseItems(goodsData._id, (int)goodsData._number);
            if (goodsData._number <= 0)
            {
                _treasureChestDic[key].RemoveAt(index);
                StaticData.UpdateWareHouseItems(goodsData._id, 0);
            }
            WarehouseTool.ChangeUnlockTreasureChestID(goodsData._id, 0);
        }
    }
Ejemplo n.º 8
0
 /// <summary>
 /// 初始化商品数据
 /// </summary>
 /// <param name="sCGoodInfo"></param>
 public void Initial(CSWareHouseStruct houseStruct)
 {
     _id     = houseStruct.GoodId;
     _number = houseStruct.GoodNum;
     _isLock = houseStruct.IsLock;
     _data   = WarehouseTool.GetGameItemData(_id);
 }
Ejemplo n.º 9
0
    /// <summary>
    /// 获取可以卖出的商品
    /// </summary>
    /// <returns></returns>
    public List <GoodsData> GetYouCanSell()
    {
        //筛选出没有锁定的数据
        List <GoodsData> sales = new List <GoodsData>();

        for (int i = 0; i < _currGoodsDatas.Count; i++)
        {
            //没有锁定才能卖
            if (!_currGoodsDatas[i]._isLock && WarehouseTool.IsGoodsSell(_currGoodsDatas[i]))
            {
                sales.Add(_currGoodsDatas[i]);
            }
        }
        //获取锁定信息有变化的数据
        List <GoodsData> lockDatas = new List <GoodsData>();

        for (int i = 0; i < _currGoodsDatas.Count; i++)
        {
            GoodsData data = _currGoodsDatas[i];
            //判断是否是有效数据
            if (_totaDataDic.ContainsKey(data._id))
            {
                //判断锁定信息是否有变化
                if (_totaDataDic[data._id]._isLock != data._isLock)
                {
                    lockDatas.Add(data);
                }
            }
        }

        return(sales);
    }
Ejemplo n.º 10
0
    /// <summary>
    /// 展示数据
    /// </summary>
    /// <param name="probabilityReward"></param>
    public async void ShowData(int awardId)
    {
        if (!_isInitial)
        {
            Initial();
        }
        gameObject.SetActive(true);
        _dataId = awardId;
        GameItemDefine gameItemDefine = WarehouseTool.GetGameItemData(_dataId);

        if (gameItemDefine == null)
        {
            Debug.Log("获取道具配置数据失败:" + _dataId);
            return;
        }
        _icon.sprite = null;
        Sprite iconSprite = null;

        try
        {
            iconSprite = await ABManager.GetAssetAsync <Sprite>(gameItemDefine.Icon);
        }
        catch (System.Exception)
        {
            Debug.Log("获取道具icon失败:" + gameItemDefine.ID);
        }
        _icon.sprite = iconSprite;
        //_icon.SetNativeSize();

        _nameText.text = StaticData.GetMultilingual(gameItemDefine.ItemName);
    }
Ejemplo n.º 11
0
 /// <summary>
 /// 初始话商品
 /// </summary>
 /// <param name="houseStruct"></param>
 /// <param name="number"></param>
 public void Initial(SCBuyGoodsStruct houseStruct, int number)
 {
     _id     = houseStruct.GoodsId;
     _number = number;
     _isLock = false;
     _data   = WarehouseTool.GetGameItemData(_id);
 }
Ejemplo n.º 12
0
    /// <summary>
    /// 展示宝箱数据
    /// </summary>
    /// <param name="data"></param>
    async void ShowData(PackageDefine data, int type = 0)
    {
        GameItemDefine gameItemDefine = WarehouseTool.GetGameItemData(data.BoxID);

        DestroyTime();
        _titleNameText.text = StaticData.GetMultilingual(gameItemDefine.ItemName);

        _keyNumber.text        = data.UseGoodsNum[0].Count.ToString();
        _surplusKeyNumber.text = WarehouseTool.GetWareHouseGold(data.UseGoodsNum[0].ID).ToString();
        ClearItem();
        List <int> awardIds = GetAward(data);

        if (awardIds != null && awardIds.Count > 0)
        {
            for (int i = 0; i < awardIds.Count; i++)
            {
                CreateItem(awardIds[i]);
            }
        }
        _iconImage.sprite = null;
        _iconImage.sprite = await ABManager.GetAssetAsync <Sprite>(gameItemDefine.Icon);

        //_iconImage.SetNativeSize();

        if (type == 0)
        {
            _showTimeBoxTra.gameObject.SetActive(false);
        }
        else
        {
            _showTimeBoxTra.gameObject.SetActive(true);
        }
    }
Ejemplo n.º 13
0
    /// <summary>
    /// 免费解锁
    /// </summary>
    /// <param name="timeCountDownComponent"></param>
    /// <param name="time"></param>
    public void FreeUnlock(Action <long> time)
    {
        int id = _goodsDatas[0]._id;

        _configCurrData = WarehouseTool.GetTreasureChestConfig(id);
        _curTimeAction  = time;
        WarehouseTool.UnlockTreasureChest(id, Game.Protocal.UnlockTreasureChest.CountDown, TimeUnlockTreasure);
    }
Ejemplo n.º 14
0
 /// <summary>
 /// 打开加速界面
 /// </summary>
 /// <param name="id"></param>
 /// <param name="timeStamp"></param>
 /// <param name="speedUpAction"></param>
 public void ShowSpeedUp(int id, long timeStamp, Action <Action <long> > speedAction)
 {
     _speedAction   = speedAction;
     _packageDefine = WarehouseTool.GetTreasureChestConfigData(id);
     ShowData(_packageDefine, 1);
     ChangeInterface(1);
     RefreshTime(timeStamp);
 }
Ejemplo n.º 15
0
    /// <summary>
    /// 广告加速
    /// </summary>
    /// <param name="timeCountDownComponent"></param>
    /// <param name="time"></param>
    public void SpeedUp(Action <long> time)
    {
        int id = _goodsDatas[0]._id;

        _configCurrData = WarehouseTool.GetTreasureChestConfig(id);
        _curTimeAction  = time;
        WarehouseTool.TreasureChestAdvertisingSpeedUp(id, TreasureChestAdvertisingSpeedUpAction);
    }
Ejemplo n.º 16
0
    /// <summary>
    /// 确认使用
    /// </summary>
    /// <param name="number"></param>
    void Use(int number)
    {
        GoodsData goodsData = new GoodsData();

        goodsData._id     = _data._id;
        goodsData._number = number;
        _currNumber       = number;
        WarehouseTool.UseGoods(goodsData, UseResult);
    }
Ejemplo n.º 17
0
 /// <summary>
 /// 打开解锁界面
 /// </summary>
 /// <param name="id"></param>
 /// <param name="KeyUnlock"></param>
 /// <param name="freeUnlock"></param>
 public void ShowUnlock(int id, Action KeyUnlock, Action <Action <long> > freeUnlock, Action <Action <long> > speedAction)
 {
     _keyUnlockAction  = KeyUnlock;
     _freeUnlockAction = freeUnlock;
     _speedAction      = speedAction;
     _packageDefine    = WarehouseTool.GetTreasureChestConfigData(id);
     ShowData(_packageDefine);
     ChangeInterface(0);
 }
Ejemplo n.º 18
0
 /// <summary>
 /// 领取宝箱回调
 /// </summary>
 /// <param name="goodsDatas"></param>
 void GetAwardAction(List <Game.Protocal.CSWareHouseStruct> goodsDatas)
 {
     _isCanReceiveAward = false;
     StaticData.OpenReceiveAward(goodsDatas, _currDataId);
     WarehouseController.Instance.ConsumeTreasureChest(_currDataId);
     CloseJoggleDOTweenAnimation();
     WarehouseTool.ChangeUnlockTreasureChestID(_currDataId, 0);
     WarehouseController.Instance.RefreshNewData();
     CloseTime();
 }
Ejemplo n.º 19
0
    /// <summary>
    /// 确认一键卖出
    /// </summary>
    public void AffirmOneKeySale()
    {
        //筛选出没有锁定的数据
        List <GoodsData> sales = GetYouCanSell();

        if (sales != null && sales.Count != 0)
        {
            WarehouseTool.OnSale(sales, AKeySelling);
        }
    }
Ejemplo n.º 20
0
 /// <summary>
 /// 钥匙解锁成功回调
 /// </summary>
 /// <param name="isSucceed"></param>
 /// <param name="unlockTime"></param>
 void KeyUnlockSucceed(bool isSucceed, long unlockTime)
 {
     if (isSucceed)
     {
         StaticData.UpdateWareHouseItem(_configCurrData.UseGoodsNum[0].ID, -(int)_configCurrData.UseGoodsNum[0].Count);
         WarehouseTool.ChangeUnlockTreasureChestID(_configCurrData.BoxID, TimeHelper.ServerTimeStampNow);
         WarehouseController.Instance.RefreshNewData();
         GetAward();
     }
 }
Ejemplo n.º 21
0
 /// <summary>
 /// 接收解析后并排序分辨完新旧的仓库数据
 /// </summary>
 /// <param name="totalGiids"></param>
 /// <param name="totaDataDic"></param>
 void AcceptCurrTotalData(List <GoodsData> totalGiids, Dictionary <int, GoodsData> totaDataDic)
 {
     _totalGiids.Clear();
     _totaDataDic.Clear();
     foreach (var item in totaDataDic)
     {
         _totaDataDic.Add(item.Key, item.Value.CopyThis());
         _totalGiids.Add(item.Value.CopyThis());
     }
     WarehouseTool.GetDistinguishDataType(_totalGiids, AcceptDistinguishDataType);
 }
Ejemplo n.º 22
0
    /// <summary>
    /// 刷新数据
    /// </summary>
    /// <param name="selectType"></param>
    public void RefreshData(int selectType)
    {
        _warehouseType         = selectType;
        _showCapacityText.text = GetWareHouseMaxCount();
        int dataCount = ChangeCurrShowGoodsData(selectType);

        //修改仓库样式
        ChangeWarehouseStyle(selectType);

        _showPriceText.text = WarehouseTool.GetCurrWareHouseTotalPrices(_currGoodsDatas);
        ChangeList(dataCount);
        SetRedDot();
    }
Ejemplo n.º 23
0
    /// <summary>
    /// 设置礼盒显示
    /// </summary>
    /// <param name="treasureChestID"></param>
    async void SetTreasureChestShow(int treasureChestID)
    {
        PackageDefine data = WarehouseTool.GetTreasureChestConfigData(treasureChestID);
        string        closeTreasureChestIconName = data.AcceptThePrize[0];
        string        OpenTreasureChestIconName  = data.AcceptThePrize[1];

        Sprite closeTreasureChestIconSprite = null;

        closeTreasureChestIconSprite = await ABManager.GetAssetAsync <Sprite>(closeTreasureChestIconName);

        _treasureChestIcon.sprite = closeTreasureChestIconSprite;
        _treasureChestIcon.SetNativeSize();
        _openTreasureChestIcon = await ABManager.GetAssetAsync <Sprite>(OpenTreasureChestIconName);
    }
Ejemplo n.º 24
0
    /// <summary>
    /// 判断是否有新道具
    /// </summary>
    /// <param name="goodsDatas"></param>
    /// <returns></returns>
    public bool IsHaveNewData(List <GoodsData> goodsDatas)
    {
        bool isNewData = false;

        for (int i = 0; i < goodsDatas.Count; i++)
        {
            if (!WarehouseTool.DataIsSave(goodsDatas[i]))
            {
                isNewData = true;
                return(isNewData);
            }
        }
        return(isNewData);
    }
Ejemplo n.º 25
0
 /// <summary>
 /// 判断是否有正在时间解锁的宝箱
 /// </summary>
 public bool IsTimeThereAnUnlock()
 {
     for (int i = 0; i < _goodsDatas.Count; i++)
     {
         if (WarehouseTool.IsTimeThereAnUnlock(_goodsDatas[i]._id))
         {
             Debug.Log("有时间解锁的宝箱:" + _goodsDatas[i]._id);
             _currDataId = _goodsDatas[i]._id;
             return(true);
         }
     }
     _currDataId = 0;
     return(false);
 }
Ejemplo n.º 26
0
    /// <summary>
    /// 点击钥匙解锁
    /// </summary>
    public void ClickKeyUnlock()
    {
        int keyNumber        = (int)_packageDefine.UseGoodsNum[0].Count;
        int surplusKeyNumber = WarehouseTool.GetWareHouseGold(_packageDefine.UseGoodsNum[0].ID);

        if (surplusKeyNumber < keyNumber)
        {
            StaticData.CreateToastTips("剩余钥匙不足");
        }
        else
        {
            _keyUnlockAction?.Invoke();
            Close();
        }
    }
Ejemplo n.º 27
0
 /// <summary>
 /// 开关红点
 /// </summary>
 /// <param name="isOpen"></param>
 public void OpenRedDot(bool isOpen)
 {
     if (!isOpen)
     {
         if (_goodsDatas != null && _goodsDatas.Count > 0)
         {
             WarehouseTool.SaveTreasureChaestsValue((int)_goodsDatas[0]._data.Rarity, _goodsDatas.Count);
         }
         else
         {
             WarehouseTool.SaveTreasureChaestsValue(_key, 0);
         }
     }
     _redDotRect.gameObject.SetActive(isOpen);
 }
Ejemplo n.º 28
0
    /// <summary>
    /// 更新全部的锁定信息
    /// </summary>
    public void UpdateAllLock(Action action = null)
    {
        List <GoodsData> changeDatas = new List <GoodsData>();

        changeDatas.AddRange(GetChangeLockDatas(_seeds));
        changeDatas.AddRange(GetChangeLockDatas(_fruits));
        changeDatas.AddRange(GetChangeLockDatas(_gameItems));
        changeDatas.AddRange(GetChangeLockDatas(_decorates));
        WarehouseTool.UpdateAllLock(changeDatas, (isSucceed) =>
        {
            if (isSucceed)
            {
                action?.Invoke();
            }
        });
    }
Ejemplo n.º 29
0
    /// <summary>
    /// 展示数据
    /// </summary>
    public async void ShowData()
    {
        _numberText.text = _showData.Count.ToString();
        GameItemDefine gameItemDefine = WarehouseTool.GetGameItemData(_showData.ID);

        _nameText.text = StaticData.GetMultilingual(gameItemDefine.ItemName);
        try
        {
            _icon.sprite = null;
            _icon.sprite = await ABManager.GetAssetAsync <Sprite>(gameItemDefine.Icon);
        }
        catch (System.Exception er)
        {
            Debug.Log("奖励icon获取失败:" + gameItemDefine.ID);
        }
        _thisRect.gameObject.SetActive(true);
    }
Ejemplo n.º 30
0
    /// <summary>
    /// 是否有解锁了的宝箱
    /// </summary>
    /// <returns></returns>
    public bool IsHaveUnlockTreasureChaests()
    {
        bool isHave = false;

        foreach (var item in _treasureChestDic)
        {
            for (int i = 0; i < item.Value.Count; i++)
            {
                if (WarehouseTool.IsThereAnUnlock(item.Value[i]._id))
                {
                    isHave = true;
                    return(isHave);
                }
            }
        }
        return(isHave);
    }