12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577 |
- using LitJson;
- using UnityEngine;
- using System;
- using System.IO;
- using System.Xml;
- using System.Text;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Security.Cryptography;
- using Sfs2X.Entities;
- using Sfs2X.Entities.Data;
- using Random = UnityEngine.Random;
- public class ConfigManager : Regist
- {
- #region Config
- public static XmlNode ConfigRootNode
- {
- get
- {
- if (configRootNode == null)
- {
- configRootNode = ConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode);
- }
- return configRootNode;
- }
- set { configRootNode = value; }
- }
- public static XmlNode configRootNode;
- public static XmlDocument ConfigDocument
- {
- get
- {
- if (configDocument == null)
- {
- LoadConfigDocument();
- }
- return configDocument;
- }
- set { configDocument = value; }
- }
- public static XmlDocument configDocument;
- public static float UrlTimer;
- public static bool PlayerDocumentDamageFlag;
- public static bool IDRequestFlag;
- public static bool SerialNumberRequestFlag = true;
- public static XmlDocument DefaultConfigDocument = new XmlDocument();
- public static int ConfigReplayVersion = -1000;
- public static string ConfigPath
- {
- get
- {
- if (string.IsNullOrEmpty(configPath))
- {
- configPath = $"{Application.persistentDataPath}/{ResourceLabel.PlayerConfigXml}";
- }
- return configPath;
- }
- }
- public static string configPath;
- #endregion
- private static string UnvalidConfigMD5 = "";
- private static void LoadConfigDocument()
- {
- int defaultVersion;
- int nativeVersion;
- XmlNode node;
- XmlDocument nativeDoc = new XmlDocument();
- if (File.Exists(ConfigPath))
- {
- try
- {
- StreamReader sr = new StreamReader(ConfigPath);
- nativeDoc.LoadXml(sr.ReadToEnd());
- sr.Close();
- Auxiliary.DecryptXml(nativeDoc);
- }
- catch (Exception)
- {
- Debug.LogWarning("Download Archive : MD5 doesn't match");
- //ManaDebug.Log("Download Archive");
- PlayerDocumentDamageFlag = true;
- SerialNumberRequestFlag = false;
- return;
- }
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Config);
- DefaultConfigDocument.LoadXml(textAsset.text);
- defaultVersion = int.Parse(DefaultConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
- node = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version);
- if (node == null)
- {
- StreamWriter sw = new StreamWriter(ConfigPath);
- sw.Write(DefaultConfigDocument.OuterXml);
- sw.Close();
- configDocument = DefaultConfigDocument;
- }
- else
- {
- nativeVersion = int.Parse(node.Attributes[0].Value);
- if (nativeVersion == ConfigReplayVersion)
- {
- configDocument = DefaultConfigDocument;
- int currentReplayVersion = int.Parse(nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ReplayVersion).Attributes[0].Value);
- SaveIntToConfig(PlayerConfigLabel.ReplayVersion, currentReplayVersion + 1);
- //Debug.Log(currentReplayVersion);
- }
- else if (nativeVersion < defaultVersion)
- {
- byte[] bytes;
- MD5 md5 = new MD5CryptoServiceProvider();
- if (nativeVersion <= 4)
- {
- bytes = Encoding.UTF8.GetBytes(nativeDoc.OuterXml);
- }
- else
- {
- bytes = File.ReadAllBytes(ConfigPath);
- }
- if (PlayerPrefs.GetString(Lib.ConfigPrefs) != UnvalidConfigMD5 && PlayerPrefs.GetString(Lib.ConfigPrefs) != Auxiliary.ToString(md5.ComputeHash(bytes)))
- {
- Debug.LogWarning("Download Archive : MD5 doesn't match");
- //ManaDebug.Log("Download Archive");
- PlayerDocumentDamageFlag = true;
- SerialNumberRequestFlag = false;
- return;
- }
- else
- {
- configDocument = UpdateConfigDocument(nativeVersion, nativeDoc, DefaultConfigDocument);
- HttpManager.UploadConfig();
- }
- }
- else if (nativeVersion > defaultVersion)
- {
- configDocument = DefaultConfigDocument;
- }
- else
- {
- byte[] bytes = File.ReadAllBytes(ConfigPath);
- MD5 md5 = new MD5CryptoServiceProvider();
- if (PlayerPrefs.GetString(Lib.ConfigPrefs) != UnvalidConfigMD5 && PlayerPrefs.GetString(Lib.ConfigPrefs) != Auxiliary.ToString(md5.ComputeHash(bytes)))
- {
- Debug.LogWarning("Download Archive : MD5 doesn't match");
- //ManaDebug.Log("Download Archive");
- PlayerDocumentDamageFlag = true;
- SerialNumberRequestFlag = false;
- return;
- }
- configDocument = nativeDoc;
- }
- }
- }
- else
- {
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Config);
- DefaultConfigDocument.LoadXml(textAsset.text);
- Debug.LogWarning("Download Archive");
- //ManaDebug.Log("Download Archive");
- PlayerDocumentDamageFlag = true;
- SerialNumberRequestFlag = false;
- return;
- }
- }
- private float MaxUrlWaitTime = 10;
- public void Update()
- {
- if (PlayerDocumentDamageFlag)
- {
- UrlTimer += Time.deltaTime;
- if (UrlTimer >= MaxUrlWaitTime)
- {
- PlayerDocumentDamageFlag = false;
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Config);
- configDocument = new XmlDocument();
- configDocument.LoadXml(textAsset.text);
- return;
- }
- }
- if (!SerialNumberRequestFlag)
- {
- if (HttpManager.SerialNumber != PlayerConfigLabel.DefaultSerialNumber)
- {
- SerialNumberRequestFlag = true;
- HttpManager.GetConfigBySerialNumber(HttpManager.SerialNumber, RecoveConfigDocument);
- }
- }
- }
- public override bool InitAtOnce()
- {
- if (base.InitAtOnce())
- {
- return true;
- }
- enabled = true;
- return false;
- }
- public static void RecoveConfigDocument(JsonData jsonData)
- {
- if (!PlayerDocumentDamageFlag)
- {
- return;
- }
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlayerConfig, Folder.Config);
- DefaultConfigDocument.LoadXml(textAsset.text);
- //Debug.Log(jsonData.ToJson());
- if (jsonData.Inst_Object.Keys.Contains("l"))
- {
- configDocument = new XmlDocument();
- configDocument.LoadXml(jsonData["l"].ToString());
- int nativeVersion = int.Parse(configDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
- int defaultVersion = int.Parse(DefaultConfigDocument.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value);
- if (nativeVersion < defaultVersion)
- {
- UpdateConfigDocument(nativeVersion, configDocument, DefaultConfigDocument);
- HttpManager.UploadConfig();
- }
- else if (nativeVersion > defaultVersion)
- {
- configDocument = DefaultConfigDocument;
- }
- PlayerDocumentDamageFlag = false;
- }
- else
- {
- if (!IDRequestFlag)
- {
- if (HttpManager.ID != PlayerConfigLabel.DefaultID)
- {
- IDRequestFlag = true;
- Debug.LogWarning("DownloadByID");
- HttpManager.GetConfigByID(HttpManager.ID, RecoveConfigDocument);
- }
- else
- {
- Debug.LogWarning("Use Default");
- configDocument = DefaultConfigDocument;
- PlayerDocumentDamageFlag = false;
- }
- }
- else
- {
- Debug.LogWarning("Use Default");
- configDocument = DefaultConfigDocument;
- PlayerDocumentDamageFlag = false;
- }
- }
- }
- public static void SaveSkillList()
- {
- if (TutorialManager.NewplayerTutorial || !Manager.Inited)
- {
- return;
- }
-
- XmlNode xmlNode;
- XmlAttribute xmlAttribute;
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
- xmlNode.RemoveAll();
- for (int i = 0; i < Manager.SkillList.Count; i++)
- {
- if (Manager.SkillList[i].SkillType == SkillType.Skill)
- {
- #region Skill
- Skill skill = (Skill)Manager.SkillList[i];
- xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
- xmlAttribute.Value = skill.FullID;
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
- xmlAttribute.Value = skill.SkillType.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
- xmlAttribute.Value = skill.ItemStatus.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
- xmlAttribute.Value = skill.Level.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.CoolTimer));
- xmlAttribute.Value = skill.CoolTimer.ToString("0");
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.UseTimer));
- xmlAttribute.Value = skill.UseTimer.ToString("0");
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
- #endregion
- }
- else if (Manager.SkillList[i].SkillType == SkillType.Pack)
- {
- #region Pack
- Pack pack = (Pack)Manager.SkillList[i];
- xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
- xmlAttribute.Value = pack.FullID;
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
- xmlAttribute.Value = pack.SkillType.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
- xmlAttribute.Value = pack.ItemStatus.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
- xmlAttribute.Value = pack.Level.ToString();
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
- #endregion
- }
- else if (Manager.SkillList[i].SkillType == SkillType.Ability)
- {
- #region Ability
- Ability ability = (Ability)Manager.SkillList[i];
- xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
- xmlAttribute.Value = ability.FullID;
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
- xmlAttribute.Value = ability.SkillType.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
- xmlAttribute.Value = ability.ItemStatus.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
- xmlAttribute.Value = ability.Level.ToString();
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
- #endregion
- }
- else if (Manager.SkillList[i].SkillType == SkillType.BigSkill)
- {
- #region BigSkill
- BigSkill bigSkill = (BigSkill)Manager.SkillList[i];
- xmlNode = xmlNode.AppendChild(ConfigDocument.CreateNode(XmlNodeType.Element, PlayerConfigLabel.Skill, ""));
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ID));
- xmlAttribute.Value = bigSkill.FullID;
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.SkillType));
- xmlAttribute.Value = bigSkill.SkillType.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.ItemStatus));
- xmlAttribute.Value = bigSkill.ItemStatus.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.BarStatus));
- xmlAttribute.Value = bigSkill.BarStatus.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.Level));
- xmlAttribute.Value = bigSkill.Level.ToString();
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.CoolTimer));
- xmlAttribute.Value = bigSkill.CoolTimer.ToString("0");
- xmlAttribute = xmlNode.Attributes.Append(ConfigDocument.CreateAttribute(PlayerConfigLabel.UseTimer));
- xmlAttribute.Value = bigSkill.UseTimer.ToString("0");
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList);
- #endregion
- }
- }
- }
- public static void SaveDress()
- {
- XmlNode xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressList);
- xmlNode.Attributes[0].Value = "";
- for (int i = 0; i < PlayerManager.BoughtCloseIDs.Count; i++)
- {
- xmlNode.Attributes[0].Value += PlayerManager.BoughtCloseIDs[i] + " ";
- }
- xmlNode.Attributes[0].Value = xmlNode.Attributes[0].Value.TrimEnd(' ');
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressData);
- for (int i = 0; i < PlayerManager.DressDatas.Count; i++)
- {
- xmlNode.Attributes[i].Value = PlayerManager.DressDatas[i];
- }
- }
- public static void SaveAchieve()
- {
- XmlNode xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveList);
- xmlNode.Attributes[0].Value = "";
- foreach (var kv in AchieveManager.AchieveItemDictionary)
- {
- if (!kv.Value.Lock)
- {
- xmlNode.Attributes[0].Value += kv.Value.ID + " ";
- }
- }
- xmlNode.Attributes[0].Value = xmlNode.Attributes[0].Value.TrimEnd(' ');
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[0].Value = Manager.PlayADsAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[1].Value = Manager.UseSkillAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[2].Value = Manager.SignAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[3].Value = Manager.ShareAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[4].Value = Manager.AllElfLevel.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[5].Value = Manager.PlayMinigameAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[6].Value = Manager.TotalFlowerAwardCoin.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[7].Value = Manager.TotalVisitPerson.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[8].Value = Manager.TotalSpendDiamond.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[9].Value = Manager.CreateRoomAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[10].Value = Manager.CreateChestAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[11].Value = Manager.CreateLuckyChestAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[12].Value = Manager.CreateGuessColorChestAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[13].Value = Manager.CreateGuessNumberChestAmt.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[14].Value = Manager.GetChestAwardAmt.ToString("0");
- }
- public static void SavePlantList()
- {
- if (VisitManager.InVisit || TutorialManager.NewplayerTutorial)
- {
- return;
- }
-
- XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.PlantList).Attributes;
- attribute[0].Value = "";
- for (int i = 0; i < GardenManager.PlantSlotList.Count; i++)
- {
- Slot slot = GardenManager.PlantSlotList[i];
-
- attribute[0].Value += slot.ID + "," + slot.Index + " ";
- }
- attribute[0].Value = attribute[0].Value.TrimEnd(' ');
- }
- public static void SaveDatas()
- {
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Coin).Attributes[0].Value = Manager.Coin.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Diamond).Attributes[0].Value = Manager.Diamond.ToString("0");
-
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignTime).Attributes[0].Value = SignManager.LastSignTime.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignIndex).Attributes[0].Value = SignManager.SignIndex.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SignRound).Attributes[0].Value = SignManager.SignRound.ToString();
-
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.QuitFlag).Attributes[0].Value = HttpManager.IsConnect.ToInt().ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.QuitTime).Attributes[0].Value = HttpManager.CurrentDateTime.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MiniTimer).Attributes[0].Value = Manager.MinigameCDTimer.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.CircleTimer).Attributes[0].Value = Manager.IncomeCircleTimer.ToString("0");
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.ID).Attributes[0].Value = HttpManager.ID;
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SerialNumber).Attributes[0].Value = HttpManager.SerialNumber;
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Language).Attributes[0].Value = LanguageManager.CurrentLanguage.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MiniGameIndex).Attributes[0].Value = MiniGameManager.MiniGameIndex.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.NewplayerTutorial).Attributes[0].Value = TutorialManager.NewplayerTutorial.ToInt().ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorial).Attributes[0].Value = TutorialManager.memoryMinigameTutorial.ToInt().ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorial).Attributes[0].Value = TutorialManager.visitTutorial.ToInt().ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomTutorial).Attributes[0].Value = TutorialManager.dressroomTutorial.ToInt().ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMinigameTutorial).Attributes[0].Value = TutorialManager.findMinigameTutorial.ToInt().ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialPlazaRoom).Attributes[0].Value = TutorialManager.plazaRoomTutorial.ToInt().ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.NewplayerTutorialIndex).Attributes[0].Value = TutorialManager.NewplayerTutorialIndex.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.MemoryMinigameTutorialIndex).Attributes[0].Value = TutorialManager.MemoryMinigameTutorialIndex.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.VisitTutorialIndex).Attributes[0].Value = TutorialManager.VisitTutorialIndex.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressroomIndex).Attributes[0].Value = TutorialManager.DressroomTutorialIndex.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FindMinigameTutorialIndex).Attributes[0].Value = TutorialManager.FindMinigameTutorialIndex.ToString();
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.TutorialIndexPlazaRoom).Attributes[0].Value = TutorialManager.PlazaRoomTutorialIndex.ToString();
- }
- public static void SaveFlowers()
- {
- XmlAttribute attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerList).Attributes[0];
- XmlAttribute attribute1 = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerAmtList).Attributes[0];
- attribute.Value = "";
- attribute1.Value = "";
- foreach (var kv in GardenManager.FlowerInfoDictionary)
- {
- if (kv.Value.Unlock)
- {
- attribute.Value += kv.Value.ID + " ";
- attribute1.Value += kv.Value.Amount + " ";
- }
- }
- attribute.Value = attribute.Value.Trim(' ');
- attribute1.Value = attribute1.Value.Trim(' ');
- }
- public static void SaveConfigDocument()
- {
- if (Initializer.Inited)
- {
- SaveSkillList();
- SaveAchieve();
- SaveDress();
- SavePlantList();
- SaveDatas();
- SaveFlowers();
- ChestManager.SaveToConfig();
- }
- }
- public static void SaveConfigDocumentToDisk()
- {
- if (Initializer.Inited)
- {
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(ConfigDocument.OuterXml);
- Auxiliary.EncryptXml(doc);
- StreamWriter sw = new StreamWriter(ConfigPath);
- sw.Write(doc.OuterXml);
- sw.Close();
- byte[] bytes = File.ReadAllBytes(ConfigPath);
- //byte[] bytes = Encoding.UTF8.GetBytes(PlayerDoc.OuterXml);
- MD5 md5 = new MD5CryptoServiceProvider();
- PlayerPrefs.SetString(Lib.ConfigPrefs, Auxiliary.ToString(md5.ComputeHash(bytes)));
- }
- }
- public static void ResetConfigDocument()
- {
- ConfigRootNode.SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = ConfigReplayVersion.ToString();
- SaveConfigDocument();
- Manager.UploadConfigFlag = true;
- SaveConfigDocumentToDisk();
- Application.Quit();
- }
- public static int GetIntFormConfig(string node)
- {
- return int.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
- }
- public static bool GetBoolFormConfig(string node)
- {
- return int.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value).ToBool();
- }
- public static float GetFloatFormConfig(string node)
- {
- return float.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
- }
- public static string GetStringFormConfig(string node)
- {
- return ConfigRootNode.SelectSingleNode(node).Attributes[0].Value;
- }
- public static double GetDoubleFormConfig(string node)
- {
- return double.Parse(ConfigRootNode.SelectSingleNode(node).Attributes[0].Value);
- }
- public static void SaveIntToConfig(string node, int value)
- {
- ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
- }
- public static void SaveBoolToConfig(string node, bool value)
- {
- ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToInt().ToString();
- }
- public static void SaveFloatToConfig(string node, float value)
- {
- ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
- }
- public static void SaveStringToConfig(string node, string value)
- {
- ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value;
- }
- public static void SaveDoubleToConfig(string node, double value)
- {
- ConfigRootNode.SelectSingleNode(node).Attributes[0].Value = value.ToString();
- }
- public static List<int> GetIntList(char splitChar, string nodeName, List<int> defaultList)
- {
- return Auxiliary.StringToInts(splitChar, ConfigRootNode.SelectSingleNode(nodeName).Attributes[0].Value, defaultList);
- }
- public static List<string> GetStringList(char splitChar, string nodeName, List<string> defaultList)
- {
- return Auxiliary.StringToStrings(splitChar, ConfigRootNode.SelectSingleNode(nodeName).Attributes[0].Value, defaultList);
- }
- public static List<int> GetDressList()
- {
- List<int> list = new List<int>();
- XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressList).Attributes;
- return Auxiliary.StringToInts(' ', attribute[0].Value, list);
- }
- public static List<int> GetDressDataIDs(Player player)
- {
- //foreach (var VARIABLE in ManaPlayer.CloseIDDic)
- //{
- // Debug.LogWarning(VARIABLE.Key);
- //}
- List<int> dressDataIDs = new List<int>();
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Head]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Dress]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Shoe]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.HeadWear]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Top]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Eye]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Mouse]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[player.Wing]);
- return dressDataIDs;
- }
- public static List<int> GetDressDataIDs(List<string> dressdataNames)
- {
- //foreach (var VARIABLE in ManaPlayer.CloseIDDic)
- //{
- // Debug.LogWarning(VARIABLE.Key);
- //}
- List<int> dressDataIDs = new List<int>();
- int index = 0;
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- dressDataIDs.Add(PlayerManager.CloseIDDictionary[dressdataNames[index++]]);
- return dressDataIDs;
- }
- public static List<int> GetDressDataIDs(ISFSObject parameter)
- {
- List<int> ids = parameter.GetIntArray(InfoLabel.Close.GetHashString()).ToList();
- return ids;
- }
- public static List<string> GetDressData(SFSObject parameter)
- {
- List<int> ids = GetDressDataIDs(parameter);
- List<string> dressData = new List<string>();
- foreach (var id in ids)
- {
- dressData.Add(PlayerManager.CloseItemDictionary[id].ArmatureName);
- }
- return dressData;
- }
- public static List<string> GetDressData(XmlNode node = null)
- {
- XmlNode xmlNode;
- if (node == null)
- {
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.DressData);
- }
- else
- {
- xmlNode = node.SelectSingleNode(PlayerConfigLabel.DressData);
- }
- List<string> dataList = new List<string>();
- if (xmlNode != null && xmlNode.Attributes.Count == 12)
- {
- dataList.Add(xmlNode.Attributes[0].Value);
- dataList.Add(xmlNode.Attributes[1].Value);
- dataList.Add(xmlNode.Attributes[2].Value);
- dataList.Add(xmlNode.Attributes[3].Value);
- dataList.Add(xmlNode.Attributes[4].Value);
- dataList.Add(xmlNode.Attributes[5].Value);
- dataList.Add(xmlNode.Attributes[6].Value);
- dataList.Add(xmlNode.Attributes[7].Value);
- dataList.Add(xmlNode.Attributes[8].Value);
- dataList.Add(xmlNode.Attributes[9].Value);
- dataList.Add(xmlNode.Attributes[10].Value);
- dataList.Add(xmlNode.Attributes[11].Value);
- //dataList[8] = "长袖9左";
- //dataList[9] = "Empty";
- //dataList[10] = "长袖9右";
- //dataList[11] = "Empty";
- }
- else if(xmlNode != null && xmlNode.Attributes.Count == 8)
- {
- dataList.Add(xmlNode.Attributes[0].Value);
- dataList.Add(xmlNode.Attributes[1].Value);
- dataList.Add(xmlNode.Attributes[2].Value);
- dataList.Add(xmlNode.Attributes[3].Value);
- dataList.Add(xmlNode.Attributes[4].Value);
- dataList.Add(xmlNode.Attributes[5].Value);
- dataList.Add(xmlNode.Attributes[6].Value);
- dataList.Add(xmlNode.Attributes[7].Value);
- dataList.AddRange (GetSleeveListByTop(xmlNode.Attributes[4].Value));
- }
- else
- {
- float rate = Random.Range(0f, 1f);
- if (rate < 0.33f)
- {
- dataList.Add("脑壳1");
- dataList.Add("裙子1");
- dataList.Add("鞋子1");
- dataList.Add("头饰品1");
- dataList.Add("上衣1");
- dataList.Add("眼睛1");
- dataList.Add("嘴巴1");
- dataList.Add("Empty");
- dataList.Add("Empty");
- dataList.Add("短袖1左");
- dataList.Add("Empty");
- dataList.Add("短袖1右");
- }
- else if (rate < 0.66f)
- {
- dataList.Add("脑壳2");
- dataList.Add("裙子2");
- dataList.Add("鞋子2");
- dataList.Add("头饰品2");
- dataList.Add("上衣2");
- dataList.Add("眼睛2");
- dataList.Add("嘴巴2");
- dataList.Add("Empty");
- dataList.Add("Empty");
- dataList.Add("短袖2左");
- dataList.Add("Empty");
- dataList.Add("短袖2右");
- }
- else
- {
- dataList.Add("脑壳3");
- dataList.Add("裙子3");
- dataList.Add("鞋子3");
- dataList.Add("头饰品3");
- dataList.Add("上衣3");
- dataList.Add("眼睛3");
- dataList.Add("嘴巴3");
- dataList.Add("Empty");
- dataList.Add("Empty");
- dataList.Add("短袖2左");
- dataList.Add("Empty");
- dataList.Add("短袖2右");
- }
- }
- return dataList;
- }
- public static List<int> GetFlowerList()
- {
- List<int> list = new List<int>();
- XmlAttributeCollection attribute = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.FlowerList).Attributes;
- return Auxiliary.StringToInts(' ', attribute[0].Value, list);
- }
- public static List<int> GetLockAchieveIDs()
- {
- return Auxiliary.StringToInts(' ', GetStringFormConfig(PlayerConfigLabel.AchieveList), new List<int>());
- }
- public static List<double> GetAchieveValues()
- {
- List<double> dataList = new List<double>();
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[0].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[1].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[2].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[3].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[4].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[5].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[6].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[7].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[8].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[9].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[10].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[11].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[12].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[13].Value));
- dataList.Add(double.Parse(ConfigRootNode.SelectSingleNode(PlayerConfigLabel.AchieveData).Attributes[14].Value));
- return dataList;
- }
- public static List<KV<int, int>> GetPlantList(XmlNode node = null)
- {
- List<KV<int, int>> list = new List<KV<int, int>>();
- XmlNode xmlNode;
- if (node == null)
- {
- xmlNode = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.PlantList);
- }
- else
- {
- xmlNode = node.SelectSingleNode(PlayerConfigLabel.PlantList);
- }
- if (!string.IsNullOrEmpty(xmlNode.Attributes[0].Value))
- {
- string[] strings = xmlNode.Attributes[0].Value.Split(' ');
- for (int i = 0; i < strings.Length; i++)
- {
- list.Add(new KV<int, int>(int.Parse(strings[i].Split(',')[0]), int.Parse(strings[i].Split(',')[1])));
- }
- }
- return list;
- }
- public static List<XmlAttributeCollection> GetSkillList(XmlNode node = null)
- {
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
- XmlNodeList xmlNodeList;
- if (node == null)
- {
- xmlNodeList = ConfigRootNode.SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
- }
- else
- {
- xmlNodeList = node.SelectSingleNode(PlayerConfigLabel.SkillList).ChildNodes;
- }
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- attributeList.Add(xmlNodeList[i].Attributes);
- }
- return attributeList;
- }
- public static List<string> GetOfflineConfig()
- {
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.OfflineConfig, Folder.Config);
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.LoadXml(textAsset.text);
- XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
- List<string> strList = new List<string>()
- {
- xmlNode.Attributes[1].Value,
- xmlNode.Attributes[2].Value,
- xmlNode.Attributes[3].Value,
- };
- return strList;
- }
- public static XmlAttributeCollection GetVisitConfig()
- {
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.VisitConfig, Folder.Config);
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.LoadXml(textAsset.text);
- XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
- return xmlNode.Attributes;
- }
- public static XmlAttributeCollection GetPlazaRoomConfig()
- {
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PlazaroomConfig, Folder.Config);
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.LoadXml(textAsset.text);
- XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
- return xmlNode.Attributes;
- }
- public static XmlAttributeCollection GetAwardConfig()
- {
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AwardConfig, Folder.Config);
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.LoadXml(textAsset.text);
- XmlNode xmlNode = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectSingleNode(ConfigLabel.ChildNode);
- return xmlNode.Attributes;
- }
- public static List<XmlAttributeCollection> GetIAPConfig()
- {
- TextAsset textAsset;
- XmlNodeList xmlNodeList;
- XmlDocument xmlDoc = new XmlDocument();
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.IAPConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- attributeList.Add(xmlNodeList[i].Attributes);
- }
- return attributeList;
- }
- public static List<XmlAttributeCollection> GetSkillConfig()
- {
- TextAsset textAsset;
- XmlDocument xmlDoc = new XmlDocument();
- List<XmlNodeList> xmlNodeList = new List<XmlNodeList>();
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.PackConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
-
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.SkillConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
-
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AbilityConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList.Add(xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode));
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- for (int j = 0; j < xmlNodeList[i].Count; j++)
- {
- attributeList.Add(xmlNodeList[i][j].Attributes);
- }
- }
- return attributeList;
- }
- public static List<XmlAttributeCollection> GetSignConfig()
- {
- TextAsset textAsset;
- XmlNodeList xmlNodeList;
- XmlDocument xmlDoc = new XmlDocument();
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.SigninConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
-
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- attributeList.Add(xmlNodeList[i].Attributes);
- }
- return attributeList;
- }
- public static List<XmlAttributeCollection> GetFlowerConfig()
- {
- TextAsset textAsset;
- XmlNodeList xmlNodeList;
- XmlDocument xmlDoc = new XmlDocument();
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
-
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.FlowerConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- attributeList.Add(xmlNodeList[i].Attributes);
- }
- return attributeList;
- }
- public static List<XmlAttributeCollection> GetLotteryConfig()
- {
- TextAsset textAsset;
- XmlNodeList xmlNodeList;
- XmlDocument xmlDoc = new XmlDocument();
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.LotteryConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- attributeList.Add(xmlNodeList[i].Attributes);
- }
- return attributeList;
- }
- public static List<XmlAttributeCollection> GetAchieveConfig()
- {
- TextAsset textAsset;
- XmlNodeList xmlNodeList;
- XmlDocument xmlDoc = new XmlDocument();
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.AchieveConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- attributeList.Add(xmlNodeList[i].Attributes);
- }
- return attributeList;
- }
- public static List<XmlAttributeCollection> GetDressRoomConfig()
- {
- TextAsset textAsset;
- XmlNodeList xmlNodeList;
- XmlDocument xmlDoc = new XmlDocument();
- List<XmlAttributeCollection> attributeList = new List<XmlAttributeCollection>();
- textAsset = ResourceManager.Load<TextAsset>(ResourceLabel.DressroomConfig, Folder.Config);
- xmlDoc.LoadXml(textAsset.text);
- xmlNodeList = xmlDoc.SelectSingleNode(ConfigLabel.RootNode).SelectNodes(ConfigLabel.ChildNode);
- for (int i = 0; i < xmlNodeList.Count; i++)
- {
- attributeList.Add(xmlNodeList[i].Attributes);
- }
- return attributeList;
- }
- public static XmlDocument GetXmlDocument(string ConfigName)
- {
- TextAsset textAsset = ResourceManager.Load<TextAsset>(ConfigName, Folder.Config);
- XmlDocument xmlDocument = new XmlDocument();
- xmlDocument.LoadXml(textAsset.text);
- return xmlDocument;
- }
- //玩家存档版本大于默认存档版本时需要清空
- //玩家存档版本小于默认存档版本时需要更新
- //玩家存档版本等于ReplayVersion时需要标记为重玩
- public static XmlDocument UpdateConfigDocument(int nativeVersion, XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- if (nativeVersion < 0)
- {
- Debug.LogWarning("UpdateArchive to 0");
- ToVersion0(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 1)
- {
- Debug.LogWarning("UpdateArchive to 1");
- ToVersion1(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 2)
- {
- Debug.LogWarning("UpdateArchive to 2");
- ToVersion2(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 3)
- {
- Debug.LogWarning("UpdateArchive to 3");
- ToVersion3(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 4)
- {
- Debug.LogWarning("UpdateArchive to 4");
- ToVersion4(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 5)
- {
- Debug.LogWarning("UpdateArchive to 5");
- ToVersion5(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 6)
- {
- Debug.LogWarning("UpdateArchive to 6");
- ToVersion6(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 7)
- {
- Debug.LogWarning("UpdateArchive to 7");
- ToVersion7(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 8)
- {
- Debug.LogWarning("UpdateArchive to 8");
- ToVersion8(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 9)
- {
- Debug.LogWarning("UpdateArchive to 9");
- ToVersion9(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 10)
- {
- Debug.LogWarning("UpdateArchive to 10");
- ToVersion10(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 11)
- {
- Debug.LogWarning("UpdateArchive to 11");
- ToVersion11(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 12)
- {
- Debug.LogWarning("UpdateArchive to 12");
- ToVersion12(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 13)
- {
- Debug.LogWarning("UpdateArchive to 13");
- ToVersion13(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 14)
- {
- Debug.LogWarning("UpdateArchive to 14");
- ToVersion14(nativeDoc, defaultDoc);
- }
- if (nativeVersion < 15)
- {
- Debug.LogWarning("UpdateArchive to 15");
- ToVersion15(nativeDoc, defaultDoc);
- }
- return nativeDoc;
- }
- public static XmlDocument ToVersion0(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 0.ToString();
- XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ADPlayTime);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion1(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 1.ToString();
- XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.SerialNumber);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion2(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 2.ToString();
- XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NotificationIndex);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion3(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 3.ToString();
- XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NickName);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion4(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 4.ToString();
- XmlNode xmlNode = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.DressData);
- XmlAttribute attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.LeftLongSleeveSlot));
- attribute.Value="Empty";
- attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.LeftShortSleeveSlot));
- attribute.Value="Empty";
- attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.RightLongSleeveSlot));
- attribute.Value="Empty";
- attribute = xmlNode.Attributes.Append (nativeDoc.CreateAttribute (PlayerConfigLabel.RightShortSleeveSlot));
- attribute.Value="Empty";
- List<string> sleeveList = GetSleeveListByTop (xmlNode.Attributes [4].Value);
- xmlNode.Attributes [8].Value = sleeveList[0];
- xmlNode.Attributes [9].Value = sleeveList[1];
- xmlNode.Attributes [10].Value = sleeveList[2];
- xmlNode.Attributes [11].Value = sleeveList[3];
- return nativeDoc;
- }
- public static List<string> GetSleeveListByTop(string topName)
- {
- List<string> sleeveList = new List<string>() {"Empty", "Empty", "Empty", "Empty"};
- if (topName == "上衣1")
- {
- sleeveList[1] = "短袖1左";
- sleeveList[3] = "短袖1右";
- }
- else if (topName == "上衣2")
- {
- sleeveList[1] = "短袖2左";
- sleeveList[3] = "短袖2右";
- }
- else if (topName == "上衣3")
- {
- sleeveList[1] = "短袖2左";
- sleeveList[3] = "短袖2右";
- }
- else if (topName == "上衣5")
- {
- sleeveList[1] = "短袖2左";
- sleeveList[3] = "短袖2右";
- }
- else if (topName == "上衣6")
- {
- sleeveList[1] = "短袖6左";
- sleeveList[3] = "短袖6右";
- }
- else if (topName == "上衣7")
- {
- sleeveList[1] = "短袖7左";
- sleeveList[3] = "短袖7右";
- }
- else if (topName == "上衣7(粉)")
- {
- sleeveList[1] = "短袖7粉左";
- sleeveList[3] = "短袖7粉右";
- }
- else if (topName == "上衣12")
- {
- sleeveList[1] = "短袖12左";
- sleeveList[3] = "短袖12右";
- }
- else if (topName == "上衣13")
- {
- sleeveList[1] = "短袖13左";
- sleeveList[3] = "短袖13右";
- }
- else if (topName == "上衣13(紫)")
- {
- sleeveList[1] = "短袖13蓝左";
- sleeveList[3] = "短袖13蓝右";
- }
- else
- {
- sleeveList[0] = "长袖9左";
- sleeveList[2] = "长袖9右";
- }
- return sleeveList;
- }
- public static XmlDocument ToVersion5(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 5.ToString();
- return nativeDoc;
- }
- public static XmlDocument ToVersion6(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 6.ToString();
- XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.NewFlowerFlag);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
- return nativeDoc;
- }
- private static int DefaultFlowerAmt = 1;
- public static XmlDocument ToVersion7(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 7.ToString();
- XmlNode xmlNode1 = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FlowerList);
- string[] flowerIDs= xmlNode1.Attributes[0].Value.Split(' ');
- xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.FlowerAmtList);
- xmlNode1.Attributes[0].Value = "";
- foreach (var flowerID in flowerIDs)
- {
- xmlNode1.Attributes[0].Value += " " + DefaultFlowerAmt;
- }
- xmlNode1.Attributes[0].Value = xmlNode1.Attributes[0].Value.TrimStart();
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion8(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 8.ToString();
- XmlNode xmlNode0 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.TutorialPlazaRoom);
- XmlNode xmlNode1 = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.TutorialIndexPlazaRoom);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode0, true));
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode1, true));
- return nativeDoc;
- }
- private static int DefaultAchieveValue = 0;
- public static XmlDocument ToVersion9(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 9.ToString();
- XmlNode xmlNode = nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.AchieveData);
- xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateRoomAmt));
- xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateChestAmt));
- xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateLuckyChestAmt));
- xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateGuessColorChestAmt));
- xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.CreateGuessNumberChestAmt));
- xmlNode.Attributes.Append(nativeDoc.CreateAttribute(PlayerConfigLabel.GetChestAwardAmt));
- xmlNode.Attributes[9].Value = DefaultAchieveValue.ToString();
- xmlNode.Attributes[10].Value = DefaultAchieveValue.ToString();
- xmlNode.Attributes[11].Value = DefaultAchieveValue.ToString();
- xmlNode.Attributes[12].Value = DefaultAchieveValue.ToString();
- xmlNode.Attributes[13].Value = DefaultAchieveValue.ToString();
- xmlNode.Attributes[14].Value = DefaultAchieveValue.ToString();
- return nativeDoc;
- }
- public static XmlDocument ToVersion10(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 10.ToString();
- ChestManager.ClearRefundAndOperateData(nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode));
- return nativeDoc;
- }
- public static XmlDocument ToVersion11(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 11.ToString();
- XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ReplayVersion);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion12(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 12.ToString();
- XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.ExtraSlot);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion13(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 13.ToString();
- XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.CurrentMinigameType);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion14(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 14.ToString();
- XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.LastPrivateMessageDate);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
- return nativeDoc;
- }
- public static XmlDocument ToVersion15(XmlDocument nativeDoc, XmlDocument defaultDoc)
- {
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.Version).Attributes[0].Value = 15.ToString();
- XmlNode xmlNode = defaultDoc.SelectSingleNode(PlayerConfigLabel.RootNode).SelectSingleNode(PlayerConfigLabel.LastApplicantSerialNumber);
- nativeDoc.SelectSingleNode(PlayerConfigLabel.RootNode).AppendChild(nativeDoc.ImportNode(xmlNode, true));
- return nativeDoc;
- }
- }
|