コード例 #1
0
        private IEnumerable <TResult> AttachItem(TSource item)
        {
            var subSource = selector.Observe(item);

            subSource.Successors.Set(this);
            var notifiable = subSource.Value as INotifyEnumerable <TResult>;

            if (notifiable == null)
            {
                var expression = subSource.Value as IEnumerableExpression <TResult>;
                if (expression != null)
                {
                    notifiable = expression.AsNotifiable();
                }
            }
            if (notifiable != null)
            {
                notifiable.Successors.Set(this);
            }
            Itemdata data;

            if (!results.TryGetValue(item, out data))
            {
                results.Add(item, new Itemdata(subSource, notifiable, 1));
            }
            else
            {
                results[item] = new Itemdata(data.Item, data.Notifiable, data.Count + 1);
            }
            return(subSource.Value);
        }
コード例 #2
0
        private void NotifySource(CollectionChangedNotificationResult <TSource> sourceChange, List <TResult> added, List <TResult> removed)
        {
            if (sourceChange.RemovedItems != null)
            {
                foreach (var item in sourceChange.RemovedItems)
                {
                    var data        = results[item];
                    var resultItems = data.Item;
                    if (data.Count == 1)
                    {
                        if (data.Notifiable != null)
                        {
                            data.Notifiable.Successors.Unset(this);
                        }
                        resultItems.Successors.Unset(this);
                        results.Remove(item);
                    }
                    else
                    {
                        results[item] = new Itemdata(data.Item, data.Notifiable, data.Count - 1);
                    }
                    removed.AddRange(resultItems.Value);
                }
            }

            if (sourceChange.AddedItems != null)
            {
                foreach (var item in sourceChange.AddedItems)
                {
                    added.AddRange(AttachItem(item));
                }
            }
        }
コード例 #3
0
 public void SetPlayerStatus(Itemdata getItemdata)
 {
     //Attackにデータを格納
     _PlayerStatus.Attack += getItemdata.Attack;
     //Speedにデータを格納
     _PlayerStatus.Speed += getItemdata.Speed;
 }
コード例 #4
0
ファイル: save_test.cs プロジェクト: MikiMina0/TestRS
 void Start()
 {
     inv3_no     = GetComponent <inventory3_noglobal>();
     database    = GetComponent <Itemdata>();
     item_load   = new int[12];
     item_load_a = new int[12];
     amount      = new int[12];
 }
コード例 #5
0
    /// <summary>
    /// ItemIdを引数に渡し該当のアイテム情報をItemdataクラスで返す
    /// </summary>
    /// <param name="itemId"></param>
    /// <returns></returns>
    public Itemdata GetItemData(int itemId)
    {
        _OneItem = new Itemdata();
        //IdがitemIdのものをラムダ式で検索し抽出
        _OneItem = _ItemData.Find(x => x.Id == itemId);

        return(_OneItem);
    }
コード例 #6
0
 void SceneLoaded(Scene nextScene, LoadSceneMode mode)
 {
     //読み込んだシーンがPickUpSceneなら_PlayerStatus初期化
     //(BallKickScene時に実行するとデータが初期化してしまうため)
     if (nextScene.name == "PickUpScene")
     {
         _PlayerStatus = new Itemdata();
     }
 }
コード例 #7
0
 private void SetPlayerStatus()
 {
     //PlayerStatusDataからPlayerStatu(Itemdataクラス)の情報を取得
     _PlayerStatus = _PlayerStatuDataObject.GetComponent <PlayerStatusData>().GetPlayerStatus();
     //_PlayerStatusからAttackを取り出す
     _PlayerAttackStatus = _PlayerStatus.Attack * _AttackAjust;
     if (_PlayerAttackStatus <= 0)
     {
         _PlayerAttackStatus = 1;
     }
     //_PlayerStatusからSpeedを取り出す
     _PlayerSpeedStatus = _PlayerStatus.Speed * _SpeedAjust * -1;
 }
コード例 #8
0
    public void OnTriggerStay(Collider other)
    {
        //OnTriggerしたColliderのgameobjectを実体化
        GameObject enterObject = other.gameObject;

        //OnTriggerしたgameobjectのタグがFoodなら
        if (enterObject.CompareTag("Food"))
        {
                   {
                //スペースキーを押したら
                if (Input.GetKey((KeyCode.Space)))
                {
                    //ピックモーション中は操作できない
                    StartCoroutine(PikkingUp());

                    //範囲内にあるFoodアイテムのID情報を取得
                    _ItemId = enterObject.GetComponent <ItemInfo>().GetItemId();

                    _itemDatatemp = new Itemdata();
                    //ItemdataオブジェクトのItemdataスクリプト内のGetItemData()を実行し、
                    //_itemIdに応じたアイテム情報(Itemdataクラス)を取得
                    _itemDatatemp = _Itemdata.GetComponent <Itemdata>().GetItemData(_ItemId);
                    //アイテム名を画面に表示
                    _GameManagerObject.GetComponent <GameManager>().DisplayItemInfo(_itemDatatemp.Itemname, enterObject);

                    //範囲内にあるFoodアイテムの削除
                    enterObject.GetComponent <ItemInfo>().DestoryItem();

                    //拾ったアイテムのステータスをplayerstatudataに格納
                    _PlayerStatuDataObject.GetComponent <PlayerStatusData>().SetPlayerStatus(_itemDatatemp);

                    //Space押したときにアニメーション
                    this.GetComponent <PlayerAnimation>().DoPickUpAnimation();

                    //拾った数をカウント
                    _PickUpCount++;
                    //カウントした数字を表示
                    _GameManagerObject.GetComponent <GameManager>().DisplayPickUpCount(_PickUpCount);
                }
            }
        }
    }
コード例 #9
0
    void Start()
    {
        b_test     = new bool[24];
        items_ID   = new int[24];
        fade       = GetComponent <fadeinout_public>();
        database   = GetComponent <Itemdata>();
        player     = GameObject.Find("player").GetComponent <Animationcontorler>();
        slotAmount = 24;

        canvas     = GameObject.Find("Canvas");
        menu       = canvas.transform.GetChild(5).gameObject;
        inventory  = menu.transform.GetChild(3).gameObject;
        info_panel = inventory.transform.GetChild(0).gameObject;
        Panel_00   = inventory.transform.GetChild(1).gameObject;
        Panel      = Panel_00.transform.GetChild(0).gameObject;
        select     = Panel.transform.GetChild(0).gameObject;
        selected   = Panel.transform.GetChild(1).gameObject;
        info_text  = info_panel.transform.GetChild(1).gameObject;
        title_text = info_panel.transform.GetChild(0).gameObject;

        panel_image = Panel_00.GetComponent <Image>();
        panel_info  = info_panel.GetComponent <Image>();

        select_tranform = select.GetComponent <RectTransform>();

        /* pauseEnabled = false;
         *       inventory.SetActive(false);
         * Panel.SetActive(false);
         * info_text.SetActive(false);
         * title_text.SetActive(false);*/
        for (int i = 0; i < slotAmount; i++)
        {
            curitems.Add(new Item());
            curslots.Add(Instantiate(inventorySlot));
            curslots[i].GetComponent <slot>().slot_id = i;
            curslots[i].transform.SetParent(Panel.transform);
        }
        selected.SetActive(false);
    }
コード例 #10
0
    public static List <Itemdata> DeserializeFromJson(string sStrJson)
    {
        var ret = new List <Itemdata>();

        // JSONデータは最初は配列から始まるので、Deserialize(デコード)した直後にリストへキャスト
        IList jsonList = (IList)Json.Deserialize(sStrJson);

        // リストの内容はオブジェクトなので、辞書型の変数に一つ一つ代入しながら、処理
        foreach (IDictionary jsonOne in jsonList)
        {
            var tmp = new Itemdata();

            //該当するキー名が jsonOne に存在するか調べ、存在したら取得して変数に格納する。
            if (jsonOne.Contains("Id"))
            {
                tmp.Id = (int)(long)jsonOne["Id"];
            }

            if (jsonOne.Contains("Itemname"))
            {
                tmp.Itemname = (string)jsonOne["Itemname"];
            }

            if (jsonOne.Contains("Attack"))
            {
                tmp.Attack = (int)(long)jsonOne["Attack"];
            }

            if (jsonOne.Contains("Speed"))
            {
                tmp.Speed = (int)(long)jsonOne["Speed"];
            }

            ret.Add(tmp);
        }

        return(ret);
    }