コード例 #1
0
    /// <summary>
    /// チェックボックスアイテムセット
    /// </summary>
    public void SetCheckBox(UserGearData data, bool isEquipped, uint isLock, uint checkFlg, Action <ItemInventoryGearScrollViewItem> onClick)
    {
        this.gearData = data;
        // CommonIconをギアに変更
        this.commonIcon.SetGearCommonIcon(true);
        var gearMaster = Masters.GearDB.FindById(data.gearId);

        // ランクスプライト切替
        var rank = CommonIconUtility.GetRarity((uint)ItemType.Gear, this.gearData.gearId);

        this.commonIcon.SetRank(rank);

        // ギアCommonIconセット
        var bgSprite   = CommonIconUtility.GetGearBgSprite(data.gearType);
        var mainSprite = CommonIconUtility.GetGearMainImageSprite(gearMaster.key);
        var subSprite  = CommonIconUtility.GetGearSubImageSprite(gearMaster.subKey);

        this.commonIcon.SetGearSprite(bgSprite, mainSprite, subSprite);

        // 装着中ギア装着中パンネル表示
        this.equippedMark.SetActive(isEquipped);

        // クリック時処理登録
        this.commonIcon.onClick = () => onClick(this);

        // // ロック情報セット
        SetTemplockImage(isLock);

        // ロックの場合はクリック禁止・イメージ暗く
        if (isEquipped || isLock == 1)
        {
            this.commonIcon.button.interactable = false;

            // 色暗く
            var newColor = new Color(130 / 255f, 130 / 255f, 130 / 255f);
            this.commonIconGearBgGraphic.color   = newColor;
            this.commonIconGearMainGraphic.color = newColor;
            this.commonIconGearSubGraphic.color  = newColor;

            this.checkBox.SetActive(false);
        }
        // チェックボックスセット
        else
        {
            this.commonIcon.button.interactable = true;

            // 色の原本で
            var newColor = new Color(255 / 255f, 255 / 255f, 255 / 255f);
            this.commonIconGearBgGraphic.color   = newColor;
            this.commonIconGearMainGraphic.color = newColor;
            this.commonIconGearSubGraphic.color  = newColor;

            this.checkBox.SetActive(true);
            //クリック時処理登録
            this.commonIcon.onClick = () => onClick(this);
        }

        // 仮選択フラッグチェックセット
        SetTempCheckImage(checkFlg);
    }
コード例 #2
0
    /// <summary>
    /// 表示構築
    /// </summary>
    public void Set(UserGearData data, bool isEquipped, uint isLock, Action <ItemInventoryGearScrollViewItem> onClick)
    {
        this.gearData = data;
        // CommonIconをギアに変更
        this.commonIcon.SetGearCommonIcon(true);
        var gearMaster = Masters.GearDB.FindById(data.gearId);

        // ランクスプライト切替
        var rank = CommonIconUtility.GetRarity((uint)ItemType.Gear, this.gearData.gearId);

        this.commonIcon.SetRank(rank);

        // ギアCommonIconセット、アイコンスプライト切替
        var bgSprite   = CommonIconUtility.GetGearBgSprite(data.gearType);
        var mainSprite = CommonIconUtility.GetGearMainImageSprite(gearMaster.key);
        var subSprite  = CommonIconUtility.GetGearSubImageSprite(gearMaster.subKey);

        this.commonIcon.SetGearSprite(bgSprite, mainSprite, subSprite);

        // 装着中ギア装着中パンネル表示
        this.equippedMark.SetActive(isEquipped);

        // クリック時処理登録
        this.commonIcon.onClick = () => onClick(this);

        // ロック情報セット
        SetTemplockImage(isLock);
    }
コード例 #3
0
    /// <summary>
    /// 表示構築
    /// </summary>
    public void Set(UserPartsData data, bool isEquipped, uint isLock, Action <ItemInventoryPartsScrollViewItem> onClick)
    {
        this.partsData = data;
        this.commonIcon.countText.text = null;

        if (data.itemType == (uint)ItemType.Accessory)
        {
            this.commonIcon.gearArea.SetActive(false);
        }

        // 装着中パンネル表示
        this.equippedMark.SetActive(isEquipped);

        //アイコンスプライト切替
        string key    = CommonIconUtility.GetSpriteKey(this.partsData.itemType, this.partsData.itemId);
        string path   = CommonIconUtility.GetSpritePath(this.partsData.itemType, key);
        var    handle = AssetManager.FindHandle <Sprite>(path);

        this.commonIcon.SetIconSprite(handle.asset as Sprite);

        //ランクスプライト切替
        var rank = CommonIconUtility.GetRarity(this.partsData.itemType, this.partsData.itemId);

        this.commonIcon.SetRank(rank);

        this.commonIcon.SetGearSlot(data);

        //クリック時処理登録
        this.commonIcon.onClick = () => onClick(this);

        // ロック情報
        bool isLockCheck = false;

        if (isLock == 1)
        {
            isLockCheck = true;
        }
        else
        {
            isLockCheck = false;
        }

        this.lockImage.gameObject.SetActive(isLockCheck);
    }
コード例 #4
0
    /// <summary>
    /// チェックボックスアイテムセット
    /// </summary>
    public void SetCheckBox(UserPartsData data, bool isEquipped, uint isLock, uint checkFlg, Action <ItemInventoryPartsScrollViewItem> onClick)
    {
        this.partsData = data;
        this.commonIcon.countText.text = null;
        var itemSellId = GetItemSellId();

        if (data.itemType == (uint)ItemType.Accessory)
        {
            this.commonIcon.gearArea.SetActive(false);
        }

        // 装着中パンネル表示
        this.equippedMark.SetActive(isEquipped);

        //アイコンスプライト切替
        string key    = CommonIconUtility.GetSpriteKey(this.partsData.itemType, this.partsData.itemId);
        string path   = CommonIconUtility.GetSpritePath(this.partsData.itemType, key);
        var    handle = AssetManager.FindHandle <Sprite>(path);

        this.commonIcon.SetIconSprite(handle.asset as Sprite);

        //ランクスプライト切替
        var rank = CommonIconUtility.GetRarity(this.partsData.itemType, this.partsData.itemId);

        this.commonIcon.SetRank(rank);

        this.commonIcon.SetGearSlot(data);

        // ロック情報
        this.SetTemplockImage(isLock);

        /// 装着ギアがロックの場合、カウント
        uint[] gearLockCount = UserData.Get().gearData
                               .Where(x => x.partsServerId == data.serverId)
                               .Select(x => x.lockFlg)
                               .ToArray();

        uint count = 0;

        for (int i = 0; i < gearLockCount.Length; i++)
        {
            count += gearLockCount[i];
        }

        // ロックの場合はクリック禁止・イメージ暗く
        if (isLock == 1 || isEquipped || count > 0 || itemSellId == 0)
        {
            this.darkBoxImage.gameObject.SetActive(true);
            this.commonIcon.button.interactable = false;
            this.checkBox.SetActive(false);
        }
        // チェックボックスセット
        else
        {
            this.darkBoxImage.gameObject.SetActive(false);
            this.commonIcon.button.interactable = true;

            this.checkBox.SetActive(true);
            //クリック時処理登録
            this.commonIcon.onClick = () => onClick(this);
        }

        // 初期砲台の場合、分解不可能の案内メッセージ、テキストセット
        if (itemSellId == 0)
        {
            this.defaultCanonText.text = Masters.LocalizeTextDB.Get("CannotDisassembledDefaultCanon");
        }
        else
        {
            this.defaultCanonText.text = null;
        }

        SetTempCheckImage(checkFlg);
    }
コード例 #5
0
    /// <summary>
    /// ギア情報セット
    /// </summary>
    public void SetGearData(UserGearData data, Action onReflesh, Action onRefleshDecomposition)
    {
        this.gearData  = data;
        this.onReflesh = onReflesh;
        this.onRefleshDecomposition = onRefleshDecomposition;

        // CommonIconをギアに変更
        this.commonIcon.SetGearCommonIcon(true);
        // ギアアイコン情報セット
        this.gearCommonIcon.Set(
            data: data,
            isEquipped: data.partsServerId > 0,
            isLock: data.lockFlg,
            onClick: null
            );

        // マスターデータ
        var gearMaster = Masters.GearDB.FindById(data.gearId);

        //現在ギアと所有するギアを比較の上、同数
        uint[] gearIds = UserData.Get().gearData.Select(x => x.gearId).ToArray();
        int    count   = 0;

        for (int i = 0; i < gearIds.Length; i++)
        {
            var userGearIds    = gearIds[i].ToString();
            var currentGearIds = data.gearId.ToString();

            if (currentGearIds == userGearIds)
            {
                count++;
            }
        }

        // 同一のギア数テキスト
        this.overlapCountText.text = Masters.LocalizeTextDB.GetFormat("GearOverlapCount", count - 1);

        // 名前
        this.gearNameText.text = gearMaster.name;
        // 説明
        this.gearDescriptionText.text = gearMaster.description;

        // ゲージ、ギアを能力値
        var config  = Masters.ConfigDB.FindById(1);
        var power   = gearMaster.power;
        var speed   = gearMaster.speed;
        var fvPoint = gearMaster.fvPoint;

        // ゲージセット
        this.powerGauge.SetGaugeValue(Mathf.Clamp01((float)power / config.maxGearPower));
        this.bulletSpeedGauge.SetGaugeValue(Mathf.Clamp01((float)speed / config.maxGearSpeed));
        this.fvPointGetCalueGauge.SetGaugeValue(Mathf.Clamp01((float)fvPoint / config.maxGearFvPoint));

        // パーツ別に、情報ロード
        PartsInfoBase partsInfo = null;

        if (this.gearData.gearType == (uint)GearType.Battery)
        {
            partsInfo = new BatteryPartsInfo(data);
        }
        else if (this.gearData.gearType == (uint)GearType.Barrel)
        {
            partsInfo = new BarrelPartsInfo(data);
        }
        else if (this.gearData.gearType == (uint)GearType.Bullet)
        {
            partsInfo = new BulletPartsInfo(data);
        }

        if (data.partsServerId == null)
        {
            this.partsCommonIcon.gameObject.SetActive(false);
            this.needCoinArea.gameObject.SetActive(false);
            this.lockbutton.gameObject.SetActive(false);
            this.decompositionButton.gameObject.SetActive(true);
            this.lockbutton.gameObject.SetActive(false);
        }
        else
        {
            // パーツアイコン
            this.partsCommonIcon.countText.text = null;
            this.partsCommonIcon.gearArea.gameObject.SetActive(true);
            this.decompositionButton.gameObject.SetActive(false);
            this.lockbutton.gameObject.SetActive(true);

            // CommonIconパーツスプライトセット
            string Key  = CommonIconUtility.GetSpriteKey((uint)partsInfo.itemType, partsInfo.partsMasterId);
            string Path = CommonIconUtility.GetSpritePath((uint)partsInfo.itemType, partsInfo.partsMasterId);

            var partsHandle = AssetManager.FindHandle <Sprite>(Path);
            this.partsCommonIcon.SetIconSprite(partsHandle.asset as Sprite);

            // CommonIconパーツランキングセット
            var partsRank = CommonIconUtility.GetRarity((uint)partsInfo.itemType, partsInfo.partsMasterId);
            this.partsCommonIcon.SetRank(partsRank);

            // CommonIconパーツ装着中ギアセット
            var partsGearSize = partsInfo.partsGearSize;

            for (int i = 0; i < this.partsCommonIcon.gearIcon.Length; i++)
            {
                this.partsCommonIcon.gearIcon[i].enabled = i < partsInfo.partsGearSlotCount;
                if (i < partsGearSize)
                {
                    this.partsCommonIcon.gearOnIcon[i].gameObject.SetActive(true);
                }
            }

            // 装着中表示
            this.partsEquippedMark.SetActive(partsInfo.partsIsEquiped);
            // 外すテキスト
            this.unEquipGearText.text = Masters.LocalizeTextDB.GetFormat("unitNeedCoin", Masters.GearDB.FindById(gearData.gearId).rejectCoin);
        }

        // ロックチェック
        if (data.lockFlg == 1)
        {
            this.lockOn.gameObject.SetActive(true);
            this.lockOff.gameObject.SetActive(false);
        }
        else
        {
            this.lockOn.gameObject.SetActive(false);
            this.lockOff.gameObject.SetActive(true);
        }

        // 分解詩修得アイテムマスターID取得
        this.getItem = Masters.ItemSellDB.GetList().FindAll(x => x.itemSellId == Masters.GearDB.FindById(data.gearId).itemSellId).ToArray();

        // 分解詩修得アイテムスクロールビュー
        this.decompositionScrollView.Initialize(
            this.decompositionItemPrefab.gameObject,
            this.getItem.Length,
            this.OnUpdateDecompositionScrollViewItem
            );

        // ボタングレーアウトON/OFF
        if (this.gearData.lockFlg == 1)
        {
            this.SetGrayout(true);
            this.decompositionButton.interactable = false;
        }
        else
        {
            this.SetGrayout(false);
        }
    }