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); }
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)); } } }
public void SetPlayerStatus(Itemdata getItemdata) { //Attackにデータを格納 _PlayerStatus.Attack += getItemdata.Attack; //Speedにデータを格納 _PlayerStatus.Speed += getItemdata.Speed; }
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]; }
/// <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); }
void SceneLoaded(Scene nextScene, LoadSceneMode mode) { //読み込んだシーンがPickUpSceneなら_PlayerStatus初期化 //(BallKickScene時に実行するとデータが初期化してしまうため) if (nextScene.name == "PickUpScene") { _PlayerStatus = new Itemdata(); } }
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; }
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); } } } }
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); }
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); }