コード例 #1
0
    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());
    }