コード例 #1
0
ファイル: StringResource.cs プロジェクト: OlegGelezcov/Casual
        private List <StringHashConflict> AppenFile(string asset, Dictionary <uint, string> targetCache, SystemLanguage lang)
        {
            List <StringHashConflict> conflicts = new List <StringHashConflict>();
            string       xml      = UnityEngine.Resources.Load <TextAsset>(asset).text;
            UXMLDocument document = new UXMLDocument();

            document.Parse(xml);

            foreach (UXMLElement element in document.Element("strings").Elements("string"))
            {
                string key     = element.GetString("name");
                string content = string.Empty;
                if (lang == SystemLanguage.Russian)
                {
                    content = element.Element("ru").value.Trim();
                }
                else
                {
                    content = element.Element("en").value.Trim();
                }
                uint hash = JenkinsHash(key);
                if (targetCache.ContainsKey(hash))
                {
                    conflicts.Add(new StringHashConflict(key, content, hash, asset));
                }
                else
                {
                    targetCache.Add(hash, content);
                }
            }
            return(conflicts);
        }
コード例 #2
0
 public bool Load(string saveStr)
 {
     if (saveStr.IsValid())
     {
         UXMLDocument document = new UXMLDocument();
         document.Parse(saveStr);
         achievments.Clear();
         var root = document.Element(saveId);
         foreach (UXMLElement element in root.Elements("achievment"))
         {
             AchievmentInfo info = new AchievmentInfo(element);
             achievments.Add(info.Id, info);
         }
         foreach (AchievmentData data in resourceService.achievmentList)
         {
             AchievmentInfo dumpInfo = GetAchievment(data);
         }
         isLoaded = true;
     }
     else
     {
         InitSave();
     }
     return(isLoaded);
 }
コード例 #3
0
        public bool Load(string saveStr)
        {
            if (string.IsNullOrEmpty(saveStr))
            {
                InitSave();
            }
            else
            {
                UXMLDocument document = UXMLDocument.FromXml(saveStr);
                var          root     = document.Element(saveId);

                startedQuests.Clear();
                completedQuests.Clear();
                notStartedQuests.Clear();

                var startedElement = root.Element("started");
                if (startedElement != null)
                {
                    startedElement.Elements("quest").ForEach(questElement => {
                        QuestInfo info = new QuestInfo(questElement);
                        if (info.IsValidData)
                        {
                            startedQuests[info.Data.id] = info;
                        }
                    });
                }

                var completedElement = root.Element("completed");
                if (completedElement != null)
                {
                    completedElement.Elements("quest").ForEach(questElement => {
                        QuestInfo info = new QuestInfo(questElement);
                        if (info.IsValidData)
                        {
                            completedQuests[info.Data.id] = info;
                        }
                    });
                }

                resourceService.questList.ForEach(questData => {
                    if ((!startedQuests.ContainsKey(questData.id)) && (!completedQuests.ContainsKey(questData.id)))
                    {
                        notStartedQuests.Add(questData.id, new QuestInfo(questData));
                    }
                });

                Debug.Log($"QUESTS LOAD, NOT STARTED: {notStartedQuests.Count}, STARTED: {startedQuests.Count}, COMPLETED: {completedQuests.Count}".Colored(ColorType.yellow));
                isLoaded = true;
            }
            return(isLoaded);
        }
コード例 #4
0
        public bool Load(string saveStr)
        {
            if (string.IsNullOrEmpty(saveStr))
            {
                InitSave();
            }
            else
            {
                UXMLDocument document = new UXMLDocument();
                document.Parse(saveStr);
                UXMLElement gameModeElement = document.Element(saveId);

                roomMode = gameModeElement?.GetEnum <RoomMode>("room_mode") ?? RoomMode.normal;

                UXMLElement roomsElement = gameModeElement.Element("rooms");
                if (roomsElement != null)
                {
                    roomManager.Load(roomsElement);
                }
                else
                {
                    roomManager.InitSave();
                }

                UXMLElement dailyRewardElement = gameModeElement.Element("daily_reward");
                if (dailyRewardElement != null)
                {
                    dailyRewardManager.Load(dailyRewardElement);
                }
                else
                {
                    dailyRewardManager.InitSave();
                }

                searchCounter    = gameModeElement.GetInt("search_counter", 0);
                lastSearchRoomId = gameModeElement.GetString("last_search_room", string.Empty);

                UXMLElement roomModeSwitcherElement = gameModeElement.Element("room_mode_switcher");
                if (roomModeSwitcherElement != null)
                {
                    RoomModeSwitcher.Load(roomModeSwitcherElement);
                }
                else
                {
                    RoomModeSwitcher.InitSave();
                }

                isLoaded = true;
            }
            return(true);
        }
コード例 #5
0
        public void Load(string xml)
        {
            prefabPath.Clear();
            UXMLDocument document = new UXMLDocument();

            document.Parse(xml);
            var pairs = (from viewElement in document.Element("views").Elements("view")
                         select new {
                type = viewElement.GetEnum <RavenhillViewType>("type"),
                path = viewElement.GetString("path")
            }).ToList();

            pairs.ForEach(pair => prefabPath.Add(pair.type, pair.path));
        }
コード例 #6
0
ファイル: LevelExpTable.cs プロジェクト: OlegGelezcov/Casual
        public void Load(string path)
        {
            UXMLDocument document = new UXMLDocument();

            document.Load(path);

            Clear();

            document.Element("level_exp_table").Elements("entry").ForEach((entryElement) => {
                int level = entryElement.GetInt("level");
                int exp   = entryElement.GetInt("exp");
                if (!ContainsKey(level))
                {
                    Add(level, exp);
                }
            });
        }
コード例 #7
0
ファイル: NetService.cs プロジェクト: OlegGelezcov/Casual
        public bool Load(string saveStr)
        {
            UXMLDocument document = UXMLDocument.FromXml(saveStr);
            UXMLElement  root     = document.Element(saveId);

            if (root != null)
            {
                UXMLElement localPlayerELement = root.Element("local_player");
                if (localPlayerELement != null)
                {
                    localPlayer = new NetPlayer();
                    localPlayer.Load(localPlayerELement);
                }
                else
                {
                    localPlayer = new NetPlayer();
                    localPlayer.InitSave();
                }
            }
            isLoaded = true;
            return(isLoaded);
        }
コード例 #8
0
ファイル: JournalService.cs プロジェクト: OlegGelezcov/Casual
 public bool Load(string saveStr)
 {
     if (saveStr.IsValid())
     {
         UXMLDocument document = UXMLDocument.FromXml(saveStr);
         entries.Clear();
         document.Element(saveId).Elements("entry").ForEach(entryElement => {
             JournalEntryInfo info = new JournalEntryInfo();
             info.Load(entryElement);
             if (info.IsValid)
             {
                 entries.Add(info);
             }
         });
         isLoaded = true;
     }
     else
     {
         InitSave();
     }
     return(isLoaded);
 }
コード例 #9
0
ファイル: NpcService.cs プロジェクト: OlegGelezcov/Casual
        public bool Load(string saveStr)
        {
            if (saveStr.IsValid())
            {
                Debug.Log($"LOAD NPC from {saveStr}");

                UXMLDocument document = new UXMLDocument();
                document.Parse(saveStr);

                npcs.Clear();
                document.Element(saveId).Elements("npc").ForEach(npcElement => {
                    NpcInfo info = new NpcInfo();
                    info.Load(npcElement);
                    npcs[info.RoomId] = info;
                });
                ValidateNpcDictionary();
                isLoaded = true;
            }
            else
            {
                InitSave();
            }
            return(isLoaded);
        }
コード例 #10
0
ファイル: PlayerService.cs プロジェクト: OlegGelezcov/Casual
        public bool Load(string saveStr)
        {
            if (string.IsNullOrEmpty(saveStr))
            {
                InitSave();
            }
            else
            {
                //Debug.Log($"LOAD PLAYER {saveStr}");
                UXMLDocument document      = UXMLDocument.FromXml(saveStr);
                UXMLElement  playerElement = document.Element(saveId);
                exp       = playerElement.GetInt("exp", 0);
                pname     = playerElement.GetString("name", string.Empty);
                avatarId  = playerElement.GetString("avatar", "Avatar1");
                silver    = playerElement.GetInt("silver", 0);
                gold      = playerElement.GetInt("gold", 0);
                health    = playerElement.GetFloat("health", kBaseMaxHealth);
                maxHealth = playerElement.GetInt("maxhealth", kBaseMaxHealth);
                int time = playerElement.GetInt("time", 0);
                if (time > 0)
                {
                    int interval = Utility.unixTime - time;
                    if (interval < 0)
                    {
                        interval = 0;
                    }
                    float restoreSpeed = 1.0f / (float)kHealthRestoreInterval;
                    float restoreCount = restoreSpeed * interval;
                    health += restoreCount;
                    health  = Mathf.Clamp(health, 0, maxHealth);
                }


                var inventoryElement = playerElement.Element("inventory");
                if (inventoryElement != null)
                {
                    inventory.Load(inventoryElement);
                }
                else
                {
                    inventory.InitSave();
                }

                var wishlistElement = playerElement.Element("wishlist");
                if (wishlistElement != null)
                {
                    wishlist.Load(wishlistElement);
                }
                else
                {
                    wishlist.InitSave();
                }

                var buffsElement = playerElement.Element("buffs");
                if (buffsElement != null)
                {
                    buffs.Load(buffsElement);
                }
                else
                {
                    buffs.InitSave();
                }

                //Debug.Log($"Player Loaded: exp-{exp}, name-{playerName}, avatar-{avatarId}, silver-{silver}, gold-{gold}");

                isLoaded = true;
            }
            return(true);
        }