void GenerateQuests() { //Debug.Log("Analizing"); Undo.RecordObject(assetTarget, "Undo recording"); string rawContent = assetTarget.myCSV.text; string[] lines = rawContent.Split(new string[] { "\n" }, System.StringSplitOptions.None); string[] separator = new string[] { ";" }; string[] conditionType = System.Enum.GetNames(typeof(ConditionType)); List <QuestSettings> tempQS = new List <QuestSettings>(); //Debug.Log(lines.Length); for (int i = 1; i < lines.Length; i++) { string[] cells = lines[i].Split(separator, System.StringSplitOptions.None); QuestSettings mission = new QuestSettings(); int questIndex = 0; int.TryParse(cells[0], out questIndex); mission.index = questIndex; mission.title = cells[1]; mission.description = cells[2]; string conditionName = cells[3]; mission.ConditionType = (ConditionType)System.Enum.Parse(typeof(ConditionType), conditionName, true); float goal = 0; float.TryParse(cells[4], out goal); mission.condition = goal; float rewardValue = 0; float.TryParse(cells[5], out rewardValue); mission.reward = rewardValue; tempQS.Add(mission); } assetTarget.missions = tempQS.ToArray(); }
protected override void QuerySettings() { QuestSettings section = (QuestSettings)ConfigurationManager.GetSection("Saga.Manager.Quest"); if (section != null) { directory = Saga.Structures.Server.SecurePath(section.Directory); directory2 = Saga.Structures.Server.SecurePath(section.SDirectory); object mytype; if (CoreService.TryFindType(section.Provider, out mytype)) { if (mytype is QuestBase) { type = mytype.GetType(); info = type.GetConstructor(new Type[] { }); } else { WriteError("QuestManager", "General quest provider has a invalid base type"); return; } } else { WriteError("QuestManager", "General quest provider could not be loaded, or found"); return; } if (CoreService.TryFindType(section.ScenarioProvider, out mytype)) { if (mytype is QuestBase) { type2 = mytype.GetType(); info2 = type2.GetConstructor(new Type[] { }); } else { WriteError("QuestManager", "Scenario quest provider has a invalid base type"); return; } } else { WriteError("QuestManager", "Scenario quest provider could not be loaded, or found"); return; } } else { WriteError("QuestManager", "Section Saga.Manager.Quest was not found, this section is required to continue loading."); return; } }
void GenerateQuests() { //Debug.Log("Analizing"); Undo.RecordObject(assetTarget, "Testing the button"); string rawContent = assetTarget.myTextAsset.text; string[] lines = rawContent.Split(new string[] { "\n" }, System.StringSplitOptions.None); string[] separator = new string[] { ";" }; string[] rewardTypes = System.Enum.GetNames(typeof(RewardType)); List <QuestSettings> tempQS = new List <QuestSettings>(); //Debug.Log(lines.Length); for (int i = 1; i < lines.Length; i++) { string[] cells = lines[i].Split(separator, System.StringSplitOptions.None); QuestSettings quest = new QuestSettings(); int questIndex = 0; int.TryParse(cells[0], out questIndex); quest.index = questIndex; quest.title = cells[1]; quest.description = cells[2]; string rewardName = cells[3]; quest.rewardType = (RewardType)System.Enum.Parse(typeof(RewardType), rewardName, true); int rewardVal = 0; int.TryParse(cells[4], out rewardVal); quest.rewardValue = rewardVal; tempQS.Add(quest); } assetTarget.quests = tempQS.ToArray(); }
public void SetUpEngineSettings() { EngineSettings.Initialize(new EngineSettings(new Vector2(0f, 0.0009f), new Vector2(0.5f, 0.5f))); ShopSettings.Initialize(new ShopSettings(6 * 6)); StatusEffectsSettings.Initialize(new StatusEffectsSettings(500)); GroupSettings.Initialize(new GroupSettings(10, 1000 * 60, (x, y) => true)); QuestSettings.Initialize(new QuestSettings(20)); GameTimeSettings.Initialize(new GameTimeSettings(19, 6, -0.5f, 50, new DateTime(2010, 1, 1), 1000f)); PeerTradingSettings.Initialize(new PeerTradingSettings(20, 128)); var rankNames = new string[] { "Recruit", "Member", "VIP", "Founder" }; var nameRules = new StringRules(3, 50, CharType.All); var tagRules = new StringRules(1, 4, CharType.All); var maxRank = (GuildRank)(rankNames.Length - 1); GuildSettings.Initialize(new GuildSettings(1000 * 60, maxRank, rankNames, nameRules, tagRules, 3, 2, 1, 1, 2, 2)); }
/// <summary> /// Initializes the <see cref="EngineSettingsInitializer"/> class. /// </summary> static EngineSettingsInitializer() { Initialize(new EngineSettingsInitializer()); ShopSettings.Initialize(new ShopSettings(6 * 6)); StatusEffectsSettings.Initialize(new StatusEffectsSettings(500)); GroupSettings.Initialize(new GroupSettings(10, 1000 * 60, CanJoinGroupHandler)); QuestSettings.Initialize(new QuestSettings(20)); GameTimeSettings.Initialize(new GameTimeSettings(19, 6, -0.5f, 50, new DateTime(2010, 1, 1), 1000f)); PeerTradingSettings.Initialize(new PeerTradingSettings(GameData.MaxInventorySize, 128)); var rankNames = new string[] { "Recruit", "Member", "VIP", "Founder" }; var nameRules = new StringRules(3, 50, CharType.All); var tagRules = new StringRules(1, 4, CharType.All); var maxRank = (GuildRank)(rankNames.Length - 1); GuildSettings.Initialize(new GuildSettings(1000 * 60, maxRank, rankNames, nameRules, tagRules, 3, 2, 1, 1, 2, 2)); }
public void GetStatusValue() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(GameAsset.text); XmlNodeList setting_values = xmlDoc.GetElementsByTagName(questsSettingsTag); questsSettings = new List<QuestSettings>(); foreach (XmlNode setting_value in setting_values) { XmlNodeList status_contents = setting_value.ChildNodes; QuestSettings questSettings = new QuestSettings(); questSettings.statusValues = new Dictionary<string, string>(); foreach (XmlNode status_content in status_contents) { foreach (string tag_name in Enum.GetNames(typeof(TagNames))) { if (status_content.Name == tag_name) { questSettings.statusValues.Add(tag_name, status_content.InnerText); } } } questsSettings.Add(questSettings); } }
private static void FirstRunConfiguration() { IPAddress gatewayip = IPAddress.Loopback; int gatewayport = 64003; IPAddress mapip = IPAddress.Loopback; byte worldid = 0; int mapport = 64002; int playerlimit = 60; string databaseusername = "******"; string databasepassword = "******"; uint dbport = 3306; int cexprates = 1; int jexprates = 1; int wexprates = 1; int droprates = 1; string databasename = "saga_world"; string dbhost = "localhost"; string dbprovider = "Saga.Map.Data.Mysql.dll, Saga.Map.Data.Mysql.MysqlProvider"; string proof = "c4ca4238a0b923820dcc509a6f75849b"; string questplugin = "Saga.Map.Data.LuaQuest.dll, Saga.Map.Data.LuaQuest.LuaQuestProvider"; string scenarioquestplugin = "Saga.Map.Data.LuaQuest.dll, Saga.Map.Data.LuaQuest.ScenarioLuaQuest"; string worldspawn = "Saga.Map.Plugins.dll, Saga.Map.Plugins.MultifileSpawnWorldObjects"; string multiworldspawn = "Saga.Map.Plugins.dll, Saga.Map.Plugins.MultifileSpawnMultiWorldObjects"; string eventprovider = "Saga.Map.Data.LuaQuest.dll, Saga.Map.Data.LuaQuest.EventInfo"; ConsoleReader reader = new ConsoleReader(); reader.Clear(null); System.Configuration.Configuration b = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (CheckConfigExists() == false) { Console.WriteLine("First time run-configuration"); char key; #region Always Configure ConfigureRequired("What is the world id of this server?"); while (!byte.TryParse(Console.ReadLine(), out worldid)) { Console.WriteLine("Incorrect value please use an number between 0–255"); } ConfigureRequired("What is the player limit of this server?"); while (!int.TryParse(Console.ReadLine(), out playerlimit)) { Console.WriteLine("Incorrect value please use an valid number"); } ConfigureRequired("What is the authentication proof of this server?"); MD5 md5 = MD5.Create(); byte[] block = Encoding.UTF8.GetBytes(Console.ReadLine()); byte[] md5block = md5.ComputeHash(block); StringBuilder builder = new StringBuilder(); foreach (byte c in md5block) { builder.AppendFormat("{0:X2}", c); } proof = builder.ToString(); ConfigureRequired("What are the cexp-rates?"); while (!int.TryParse(Console.ReadLine(), out cexprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } cexprates = Math.Min(20, Math.Max(cexprates, 1)); ConfigureRequired("What are the jexp-rates?"); while (!int.TryParse(Console.ReadLine(), out jexprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } jexprates = Math.Min(20, Math.Max(jexprates, 1)); ConfigureRequired("What are the wexp-rates?"); while (!int.TryParse(Console.ReadLine(), out wexprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } wexprates = Math.Min(20, Math.Max(wexprates, 1)); ConfigureRequired("What are the item drop-rates?"); while (!int.TryParse(Console.ReadLine(), out droprates)) { Console.WriteLine("Incorrect value please use an between 1 and 20"); } droprates = Math.Min(20, Math.Max(droprates, 1)); ConfigureRequired("Detect database plugin"); dbprovider = FindPlugin(typeof(IDatabase), dbprovider); ConfigureRequired("Detect quest plugin"); questplugin = FindPlugin(typeof(Saga.Quests.IQuest), questplugin); ConfigureRequired("Detect scenarion quest plugin"); scenarioquestplugin = FindPlugin(typeof(Saga.Quests.ISceneraioQuest), scenarioquestplugin); ConfigureRequired("Detect npc & map spawn plugin"); worldspawn = FindPlugin(typeof(Saga.Factory.SpawnWorldObjects), worldspawn); ConfigureRequired("Detect mob spawn plugin"); multiworldspawn = FindPlugin(typeof(Saga.Factory.SpawnMultiWorldObjects), multiworldspawn); ConfigureRequired("Detect event plugin"); eventprovider = FindPlugin(typeof(Saga.Factory.EventManager.BaseEventInfo), eventprovider); #endregion Always Configure #region Network Settings ConfigureGatewayNetwork: Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Do you wan to configure the gateway-map network settings? Y/N"); Console.ResetColor(); key = Console.ReadKey(true).KeyChar; if (key == 'y') { Console.WriteLine("What ip should the gateway-map server listen to?"); while (!IPAddress.TryParse(Console.ReadLine(), out gatewayip)) { Console.WriteLine("Incorrect value please use an ipv4 adress, recommended 0.0.0.0"); } Console.WriteLine("What port should the gateway-map server listen to?"); while (!int.TryParse(Console.ReadLine(), out gatewayport)) { Console.WriteLine("Incorrect value please use an number between 1024–49151, recommended 64003"); } } else if (key != 'n') { goto ConfigureGatewayNetwork; } ConfigureWorldNetwork: Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Do you wan to configure the authentication-map network settings? Y/N"); Console.ResetColor(); key = Console.ReadKey(true).KeyChar; if (key == 'y') { Console.WriteLine("What ip should the authentication-map server listen to?"); while (!IPAddress.TryParse(Console.ReadLine(), out mapip)) { Console.WriteLine("Incorrect value please use an ipv4 adress, recommended 0.0.0.0"); } Console.WriteLine("On what port is the authentication server listening"); while (!int.TryParse(Console.ReadLine(), out mapport)) { Console.WriteLine("Incorrect value please use an number between 1024–49151, recommended 64002"); } } else if (key != 'n') { goto ConfigureWorldNetwork; } #endregion Network Settings #region Database Settings DatabaseName: ConfigureOptional("Do you want to configure the database settings? Y/N"); key = Console.ReadKey(true).KeyChar; if (key == 'y') { ConfigureRequired("What is the database name?"); databasename = Console.ReadLine(); ConfigureRequired("What is the database username?"); databaseusername = Console.ReadLine(); ConfigureRequired("What is the database password?"); databasepassword = Console.ReadLine(); ConfigureRequired("What is the database port?"); while (!uint.TryParse(Console.ReadLine(), out dbport)) { Console.WriteLine("Incorrect value please use an number between 1024–49151, recommended 3306"); } ConfigureRequired("What is the database host?"); dbhost = Console.ReadLine(); } else if (key != 'n') { goto DatabaseName; } #endregion Database Settings #region Plugin detection PluginDetection: ConfigureOptional("Do you want to dectect other plugins?"); key = Console.ReadKey(true).KeyChar; if (key == 'y') { Console.WriteLine("no plugins detected"); } else if (key != 'n') { goto PluginDetection; } #endregion Plugin detection //CONFIGURE SERVER SETTINGS ServerVars serverVarsConfiguration = new ServerVars(); serverVarsConfiguration.DataDirectory = "../Data/"; b.Sections.Add("Saga.ServerVars", serverVarsConfiguration); //CONFIGURE NETWORK SETTINGS NetworkSettings networkSettings = new NetworkSettings(); NetworkFileCollection collection = networkSettings.Connections; collection["public"] = new NetworkElement("public", gatewayip.ToString(), gatewayport); collection["internal"] = new NetworkElement("internal", mapip.ToString(), mapport); b.Sections.Remove("Saga.Manager.NetworkSettings"); b.Sections.Add("Saga.Manager.NetworkSettings", networkSettings); networkSettings.WorldId = worldid; networkSettings.Proof = proof; networkSettings.PlayerLimit = playerlimit; //CONFIGURE CONSOLE SETTING ConsoleSettings consoleSettings = new ConsoleSettings(); consoleSettings.CommandPrefix = "@"; consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Broadcast")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Position")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ChatMute")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.GmWarptomap")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.PlayerJump")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.PlayerCall")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Speed")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.GarbageCollector")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ClearNpc")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.KickAll")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Kick")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Time")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ShowMaintenance")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.ScheduleMaintenance")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.SetGmLevel")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Spawn")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Unspawn")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.GiveItem")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.QStart")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Kill")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Worldload")); consoleSettings.GmCommands.Add(new FactoryFileElement("Saga.Scripting.Console.Gmgo")); b.Sections.Add("Saga.Manager.ConsoleSettings", consoleSettings); //PORTALS PortalSettings portalSettings = new PortalSettings(); portalSettings.FolderItems.Add(new FactoryFileElement("~/portal_data.csv", "text/csv")); b.Sections.Remove("Saga.Factory.Portals"); b.Sections.Add("Saga.Factory.Portals", portalSettings); //CHARACTERCONFIGURATION CharacterConfigurationSettings characterconfigurationSettings = new CharacterConfigurationSettings(); characterconfigurationSettings.FolderItems.Add(new FactoryFileElement("~/character-template.csv", "text/csv")); b.Sections.Remove("Saga.Factory.CharacterConfiguration"); b.Sections.Add("Saga.Factory.CharacterConfiguration", characterconfigurationSettings); //ADDITION AdditionSettings additionSettings = new AdditionSettings(); additionSettings.FolderItems.Add(new FactoryFileElement("~/Addition_t.xml", "text/xml")); additionSettings.Reference = "~/addition_reference.csv"; b.Sections.Remove("Saga.Factory.Addition"); b.Sections.Add("Saga.Factory.Addition", additionSettings); //SPELLS SpellSettings spellSettings = new SpellSettings(); spellSettings.FolderItems.Add(new FactoryFileElement("~/spell_data.xml", "text/xml")); spellSettings.Reference = "~/skill_reference.csv"; b.Sections.Remove("Saga.Factory.Spells"); b.Sections.Add("Saga.Factory.Spells", spellSettings); //STATUSBYLEVEL StatusByLevelSettings statusbylevelSettings = new StatusByLevelSettings(); statusbylevelSettings.FolderItems.Add(new FactoryFileElement("~/experience.csv", "text/csv")); statusbylevelSettings.Cexp = cexprates; statusbylevelSettings.Jexp = jexprates; statusbylevelSettings.Wexp = wexprates; statusbylevelSettings.Droprate = droprates; b.Sections.Remove("Saga.Factory.StatusByLevel"); b.Sections.Add("Saga.Factory.StatusByLevel", statusbylevelSettings); //WARPSETTINGS WarpSettings warpSettings = new WarpSettings(); warpSettings.FolderItems.Add(new FactoryFileElement("~/warp_data.csv", "text/csv")); b.Sections.Remove("Saga.Factory.Warps"); b.Sections.Add("Saga.Factory.Warps", warpSettings); //ZONES ZoneSettings zoneSettings = new ZoneSettings(); zoneSettings.FolderItems.Add(new FactoryFileElement("~/zone_data.csv", "text/csv")); zoneSettings.Directory = "../Data/heightmaps"; b.Sections.Remove("Saga.Factory.Zones"); b.Sections.Add("Saga.Factory.Zones", zoneSettings); //ITEMS ItemSettings itemSettings = new ItemSettings(); itemSettings.FolderItems.Add(new FactoryFileElement("~/item_data.xml", "text/xml")); b.Sections.Remove("Saga.Factory.Items"); b.Sections.Add("Saga.Factory.Items", itemSettings); //WEAPONARY WeaponarySettings weaponarySettings = new WeaponarySettings(); weaponarySettings.FolderItems.Add(new FactoryFileElement("~/weapon_data.csv", "text/csv")); b.Sections.Remove("Saga.Factory.Weaponary"); b.Sections.Add("Saga.Factory.Weaponary", weaponarySettings); //SPAWNTEMPLATE SpawntemplateSettings spawntemplateSettings = new SpawntemplateSettings(); spawntemplateSettings.FolderItems.Add(new FactoryFileElement("~/npc_templates.csv", "text/csv")); spawntemplateSettings.FolderItems.Add(new FactoryFileElement("~/item_templates.csv", "text/csv")); b.Sections.Remove("Saga.Factory.SpawnTemplate"); b.Sections.Add("Saga.Factory.SpawnTemplate", spawntemplateSettings); //SPAWNS NPC & MAP SpawnWorldObjectSettings spawnworldobjectSettings = new SpawnWorldObjectSettings(); spawnworldobjectSettings.FolderItems.Add(new FactoryFileElement("~/npc-spawns/", "text/csv")); spawnworldobjectSettings.FolderItems.Add(new FactoryFileElement("~/item-spawns/", "text/csv")); spawnworldobjectSettings.DerivedType = worldspawn; b.Sections.Remove("Saga.Factory.SpawnWorldObjects"); b.Sections.Add("Saga.Factory.SpawnWorldObjects", spawnworldobjectSettings); //SPAWNS MOBS SpawnMultiWorldObjectSettings spawnmultiworldobjectSettings = new SpawnMultiWorldObjectSettings(); spawnmultiworldobjectSettings.FolderItems.Add(new FactoryFileElement("~/mob-spawns/", "text/csv")); spawnmultiworldobjectSettings.DerivedType = multiworldspawn; b.Sections.Remove("Saga.Factory.SpawnMultiWorldObjects"); b.Sections.Add("Saga.Factory.SpawnMultiWorldObjects", spawnmultiworldobjectSettings); //SCRIPTING ScriptingSettings scriptingSettings = new ScriptingSettings(); scriptingSettings.Directory = "../Saga.Scripting"; scriptingSettings.Assemblies.Add(new FactoryFileElement("System.dll", "text/csv")); scriptingSettings.Assemblies.Add(new FactoryFileElement("System.Data.dll", "text/csv")); scriptingSettings.Assemblies.Add(new FactoryFileElement("System.Xml.dll", "text/csv")); b.Sections.Remove("Saga.Manager.Scripting"); b.Sections.Add("Saga.Manager.Scripting", scriptingSettings); //EVENTS EventSettings eventSettings = new EventSettings(); eventSettings.FolderItems.Add(new FactoryFileElement("~/eventlist.csv", "text/csv")); eventSettings.Provider = eventprovider; b.Sections.Remove("Saga.Factory.Events"); b.Sections.Add("Saga.Factory.Events", eventSettings); //QUUESTS QuestSettings questSettings = new QuestSettings(); questSettings.Directory = "../Quests/"; questSettings.SDirectory = "~/Scenario.Quests/"; questSettings.Provider = questplugin; questSettings.ScenarioProvider = scenarioquestplugin; b.Sections.Remove("Saga.Manager.Quest"); b.Sections.Add("Saga.Manager.Quest", questSettings); //DATABASE SETTINGS DatabaseSettings databaseSettings = new DatabaseSettings(); databaseSettings.Database = databasename; databaseSettings.Username = databaseusername; databaseSettings.Password = databasepassword; databaseSettings.Port = dbport; databaseSettings.Host = dbhost; databaseSettings.DBType = dbprovider; b.Sections.Remove("Saga.Manager.Database"); b.Sections.Add("Saga.Manager.Database", databaseSettings); //SAVE CONFIGURATION AND REFRESH ALL SECTIONS b.Save(); //REFRESH ALL SECTIONS ConfigurationManager.RefreshSection("Saga.Factory.SpawnMultiWorldObjects"); ConfigurationManager.RefreshSection("Saga.Manager.Database"); ConfigurationManager.RefreshSection("Saga.Manager.Quest"); ConfigurationManager.RefreshSection("Saga.Manager.Scripting"); ConfigurationManager.RefreshSection("Saga.Factory.Events"); ConfigurationManager.RefreshSection("Saga.Factory.SpawnWorldObject"); ConfigurationManager.RefreshSection("Saga.ServerVars"); ConfigurationManager.RefreshSection("Saga.Manager.NetworkSettings"); ConfigurationManager.RefreshSection("Saga.Manager.ConsoleSettings"); ConfigurationManager.RefreshSection("Saga.Factory.Portals"); ConfigurationManager.RefreshSection("Saga.Factory.CharacterConfiguration"); ConfigurationManager.RefreshSection("Saga.Factory.Addition"); ConfigurationManager.RefreshSection("Saga.Factory.Spells"); ConfigurationManager.RefreshSection("Saga.Factory.StatusByLevel"); ConfigurationManager.RefreshSection("Saga.Factory.Warps"); ConfigurationManager.RefreshSection("Saga.Factory.Zones"); ConfigurationManager.RefreshSection("Saga.Factory.Items"); ConfigurationManager.RefreshSection("Saga.Factory.Weaponary"); ConfigurationManager.RefreshSection("Saga.Factory.SpawnTemplate"); Console.WriteLine("Everything configured"); } }
public QuestEngineService(PlayerQuestDbContext context, IOptions <QuestSettings> settings, ILogger <QuestEngineService> logger) { config = settings.Value; db = context; this.logger = logger; }
public async Task <MethodResult <Dictionary <PokemonId, PokemonSettings> > > GetItemTemplates() { if (PokeSettings != null && PokeSettings.Count != 0) { return(new MethodResult <Dictionary <PokemonId, PokemonSettings> > { Data = PokeSettings, Message = "Settings already grabbed", Success = true }); } if (!_client.LoggedIn) { MethodResult result = await AcLogin(); if (!result.Success) { return(new MethodResult <Dictionary <PokemonId, PokemonSettings> > { Message = result.Message }); } } if (_client.ClientSession.Templates.ItemTemplates == null) { return new MethodResult <Dictionary <PokemonId, PokemonSettings> > { Message = "Failed to get setting templates" } } ; var pokemonSettings = new Dictionary <PokemonId, PokemonSettings>(); var moveSettings = new Dictionary <PokemonMove, MoveSettings>(); var badgeSettings = new Dictionary <BadgeType, BadgeSettings>(); var itemSettings = new Dictionary <ItemId, ItemSettings>(); var battleSettings = new GymBattleSettings(); var upgradeSettings = new PokemonUpgradeSettings(); var moveSequenceSettings = new MoveSequenceSettings(); var encounterSettings = new EncounterSettings(); var iapItemDisplay = new IapItemDisplay(); var iapSettings = new IapSettings(); var equippedBadge = new EquippedBadgeSettings(); var questSettings = new QuestSettings(); var avatarCustomization = new AvatarCustomizationSettings(); var formSettings = new FormSettings(); var genderSettings = new GenderSettings(); var gymBadgeSettings = new GymBadgeGmtSettings(); var weatherAffinities = new WeatherAffinity(); var weatherBonusSettings = new WeatherBonus(); var pokemonScaleSettings = new PokemonScaleSetting(); var typeEffective = new TypeEffectiveSettings(); var camera = new CameraSettings(); var gymLevel = new GymLevelSettings(); foreach (var template in _client.ClientSession.Templates.ItemTemplates) { if (template.PlayerLevel != null) { LevelSettings = template.PlayerLevel; continue; } if (template.PokemonSettings != null) { if (pokemonSettings.ContainsKey(template.PokemonSettings.PokemonId)) { pokemonSettings.Remove(template.PokemonSettings.PokemonId); } pokemonSettings.Add(template.PokemonSettings.PokemonId, template.PokemonSettings); } else if (template.MoveSettings != null) { if (moveSettings.ContainsKey(template.MoveSettings.MovementId)) { moveSettings.Remove(template.MoveSettings.MovementId); } moveSettings.Add(template.MoveSettings.MovementId, template.MoveSettings); } else if (template.BadgeSettings != null) { if (badgeSettings.ContainsKey(template.BadgeSettings.BadgeType)) { badgeSettings.Remove(template.BadgeSettings.BadgeType); } badgeSettings.Add(template.BadgeSettings.BadgeType, template.BadgeSettings); } else if (template.ItemSettings != null) { if (itemSettings.ContainsKey(template.ItemSettings.ItemId)) { itemSettings.Remove(template.ItemSettings.ItemId); } itemSettings.Add(template.ItemSettings.ItemId, template.ItemSettings); } else if (template.EncounterSettings != null) { encounterSettings = template.EncounterSettings; } else if (template.MoveSequenceSettings != null) { moveSequenceSettings = template.MoveSequenceSettings; } else if (template.BattleSettings != null) { battleSettings = template.BattleSettings; } else if (template.IapItemDisplay != null) { iapItemDisplay = template.IapItemDisplay; } else if (template.IapSettings != null) { iapSettings = template.IapSettings; } else if (template.EquippedBadges != null) { equippedBadge = template.EquippedBadges; } else if (template.QuestSettings != null) { questSettings = template.QuestSettings; } else if (template.AvatarCustomization != null) { avatarCustomization = template.AvatarCustomization; } else if (template.FormSettings != null) { formSettings = template.FormSettings; } else if (template.GenderSettings != null) { genderSettings = template.GenderSettings; } else if (template.GymBadgeSettings != null) { gymBadgeSettings = template.GymBadgeSettings; } else if (template.WeatherAffinities != null) { weatherAffinities = template.WeatherAffinities; } else if (template.WeatherBonusSettings != null) { weatherBonusSettings = template.WeatherBonusSettings; } else if (template.PokemonScaleSettings != null) { pokemonScaleSettings = template.PokemonScaleSettings; } else if (template.TypeEffective != null) { typeEffective = template.TypeEffective; } else if (template.Camera != null) { camera = template.Camera; } else if (template.GymLevel != null) { gymLevel = template.GymLevel; } else if (template.PokemonUpgrades != null) { upgradeSettings = template.PokemonUpgrades; } } PokeSettings = pokemonSettings; MoveSettings = moveSettings; BadgeSettings = badgeSettings; ItemSettings = itemSettings; BadgeSettings = badgeSettings; UpgradeSettings = upgradeSettings; GetMoveSequenceSettings = moveSequenceSettings; GetEncounterSettings = encounterSettings; GetIapItemDisplay = iapItemDisplay; GetIapSettings = iapSettings; GetEquippedBadgeSettings = equippedBadge; GetQuestSettings = questSettings; GetAvatarCustomizationSettings = avatarCustomization; GetFormSettings = formSettings; GetGenderSettings = genderSettings; GetGymBadgeGmtSettings = gymBadgeSettings; GetWeatherAffinity = weatherAffinities; GetWeatherBonus = weatherBonusSettings; GetPokemonScaleSetting = pokemonScaleSettings; GetTypeEffectiveSettings = typeEffective; GetCameraSettings = camera; GetGymLevelSettings = gymLevel; return(new MethodResult <Dictionary <PokemonId, PokemonSettings> > { Data = pokemonSettings, Message = "Success", Success = true }); }