public void ResetData() { Notify.Text = ""; if (HaveDic != null) { HaveDic.Clear(); SaveGameData(HaveDic, HaveDicPath); } if (ItemOpenList != null) { ItemOpenList.Clear(); SaveGameData(ItemOpenList, ItemOpenListPath); } if (NewBookList != null) { NewBookList.Clear(); SaveGameData(NewBookList, NewBookListPath); } if (NewItemList != null) { NewItemList.Clear(); SaveGameData(NewItemList, NewItemListPath); } // 관찰자들에게 이벤트 메세지 송출 foreach (var target in ResetList) { ExecuteEvents.Execute <IResetables>(target, null, (x, y) => x.OnReset()); } NowIndex = 300101; PlayerPrefs.DeleteAll(); }
/// <summary> /// 현재 이 아이템을 보유하고 있는지 확인하는 함수 /// </summary> /// <param name="index">haveDic의 index값</param> /// <returns></returns> private bool CheckExistItem(int index) { return(HaveDic.ContainsKey(index)); }
/// <summary> /// 아이템을 추가하는 함수 /// </summary> /// <param name="key">추가하는 아이템의 Index</param> /// <param name="itemId">아이템 고유의 id</param> /// <param name="itemPos">아이템 위치</param> public void InsertNewItem(int key, int itemId, Vector3 itemPos) { var isBook = DataDictionary.IndexToGroup(key) == ItemGroup.Book; if (!CheckExistItem(key)) { ItemOpenList.Add(key); SaveGameData(ItemOpenList, ItemOpenListPath); //Debug.Log("itemOpenList - DataSerialize"); var posList = new Dictionary <int, SerializableVector3> { { itemId, itemPos } }; HaveDic.Add(key, posList); // !마크 띄우기 if (isBook) //서적 { NewBookList.Add(key); SaveGameData(NewBookList, NewBookListPath); var setInfo = _dataDic.CheckSetItemCombine(key); if (setInfo.Result != 0) { InsertNewItem(setInfo.Result, 1); } } else //도감 { NewItemList.Add(key); SaveGameData(NewItemList, NewItemListPath); } } else { var id = itemId; // id 에러 방지용 땜빵 코드. itemid 에 아무 정수나 넣어도 충돌을 방지해준다. if (HaveDic[key].ContainsKey(id)) { while (HaveDic[key].ContainsKey(id)) { id++; } } HaveDic[key].Add(id, itemPos); } if (!isBook) //서적이 아니면 아이템 카운트 늘림 { ItemCount += 1; } // 관찰자들에게 이벤트 메세지 송출 foreach (var target in Observers) { ExecuteEvents.Execute <IEventListener>(target, null, (x, y) => x.OnObtain(_dataDic.FindItemDic[key])); } SaveGameData(HaveDic, HaveDicPath); }