public static GameStore Store() { if (!Initialized) { GameStore.GetInstance().LoadConfig(Resources.Load <TextAsset>("Configuration").text); var PgItemsSources = GameStore.GetInstance().Config.Get <PgItemsSources>("PgItemsSources"); GameStore.GetInstance().Put("ItemsDb", Newtonsoft.Json.JsonConvert.DeserializeObject <List <Item> >(Resources.Load <TextAsset>(PgItemsSources.ItemsPath).text)); GameStore.GetInstance().Put("PrefixesDb", Newtonsoft.Json.JsonConvert.DeserializeObject <List <Affix> >(Resources.Load <TextAsset>(PgItemsSources.PrefixesPath).text)); GameStore.GetInstance().Put("SuffixesDb", Newtonsoft.Json.JsonConvert.DeserializeObject <List <Affix> >(Resources.Load <TextAsset>(PgItemsSources.SuffixesPath).text)); GameStore.GetInstance().Put("DropSourcesDb", new Dictionary <string, List <DropSource> >()); foreach (var dropSourcePath in PgItemsSources.DropSourcesPath.Keys) { GameStore.GetInstance().Get <Dictionary <string, List <DropSource> > >("DropSourcesDb") .Add(dropSourcePath, Newtonsoft.Json.JsonConvert.DeserializeObject <List <DropSource> >(Resources.Load <TextAsset>(PgItemsSources.DropSourcesPath[dropSourcePath]).text)); } GameStore.GetInstance().Put("ItemGenerator", new ItemGenerator( GameStore.GetInstance().Get <List <Item> >("ItemsDb"), GameStore.GetInstance().Get <List <Affix> >("PrefixesDb"), GameStore.GetInstance().Get <List <Affix> >("SuffixesDb") )); // Add Member Tags GameStore.GetInstance().Put("AlexaTag", GameStore.GetInstance().Config.Get <List <string> >("MemberTags")[0]); GameStore.GetInstance().Put("RogerTag", GameStore.GetInstance().Config.Get <List <string> >("MemberTags")[1]); // Initialize Log GameStore.GetInstance().Put("Logger", new List <string>()); Initialized = true; } return(GameStore.GetInstance()); }