コード例 #1
0
ファイル: Program.cs プロジェクト: DNA666777/MHTH
        /// <summary>
        /// The update monster.
        /// </summary>
        private static void UpdateMonster()
        {
            MHTHEntities mhthEntities = new MHTHEntities();

            mhthEntities.Database.Connection.Open();
            var     allLine   = File.ReadAllLines("..\\CSVToImport\\MonsterList.txt");
            decimal currentCr = 0;

            foreach (var line in allLine)
            {
                if (line.Contains("Challenge"))
                {
                    currentCr = decimal.Parse(line.Split(' ')[1]);
                    continue;
                }
                else
                {
                    Monster newMonster = new Monster();
                    newMonster.CR   = currentCr;
                    newMonster.Name = line;
                    mhthEntities.Monsters.Add(newMonster);
                    mhthEntities.SaveChanges();
                }
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: DNA666777/MHTH
        /// <summary>
        /// The update monster variant.
        /// </summary>
        private static void UpdateMonsterVariant()
        {
            MHTHEntities mhthEntities = new MHTHEntities();

            foreach (var monster in mhthEntities.Monsters.ToList())
            {
                if (monster.Name.Contains("Vespoid") || monster.Name == "Ceanataur" || monster.Name == "Hermitaur" ||
                    monster.Name.Contains("Jagras") ||
                    monster.Name.Contains("Girros") ||
                    monster.Name.Contains("Ludroth") ||
                    monster.Name.Contains("Baggi") ||
                    monster.Name.Contains("Genprey") ||
                    monster.Name.Contains("Ioprey") ||
                    monster.Name.Contains("Ioprey") ||
                    monster.Name.Contains("Jaggi") ||
                    monster.Name.Contains("Maccao") ||
                    monster.Name.Contains("Velociprey") ||
                    monster.Name.Contains("Wroggi") ||
                    monster.Name.Contains("Shakalaka") ||
                    monster.Name.Contains("Giggi") || monster.Name.Contains("Blango") || monster.Name.Contains("Conga") ||
                    monster.Name.Contains("drome"))
                {
                    continue;
                }

                var possibleVariant = mhthEntities.Monsters.Where(t => t.Id != monster.Id && t.Name.Contains(monster.Name)).ToList();
                if (possibleVariant.Count > 0)
                {
                    foreach (var variantMonster in possibleVariant)
                    {
                        variantMonster.BaseMonsterId = monster.Id;
                        mhthEntities.Monsters.AddOrUpdate(variantMonster);
                        mhthEntities.SaveChanges();
                    }
                }
            }
        }
コード例 #3
0
ファイル: GenericRepository.cs プロジェクト: DNA666777/MHTH
 public GenericRepository(MHTHEntities context)
 {
     this.context = context;
     this.dbSet   = context.Set <TEntity>();
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: DNA666777/MHTH
        /// <summary>
        /// The update quest mhw.
        /// </summary>
        private static void UpdateQuestMhw()
        {
            using (TextFieldParser parser = new TextFieldParser(@".\CSVToImport\questsMHW.csv"))
            {
                MHTHEntities         mhthEntities             = new MHTHEntities();
                List <QuestTemplate> qtlist                   = new List <QuestTemplate>();
                Dictionary <string, QuestTemplate> dictionary = new Dictionary <string, QuestTemplate>();
                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters("|");
                bool firstLine = true;
                Dictionary <string, int> indexOfColumn = new Dictionary <string, int>();
                int i = 1;
                while (!parser.EndOfData)
                {
                    //Processing row
                    //Find index of row
                    string[] fields = parser.ReadFields();
                    if (firstLine)
                    {
                        indexOfColumn.Add("Id", fields.ToList().IndexOf("id"));
                        indexOfColumn.Add("Lang", fields.ToList().IndexOf("lang_id"));
                        indexOfColumn.Add("Name", fields.ToList().IndexOf("name"));
                        indexOfColumn.Add("Goal", fields.ToList().IndexOf("objective"));
                        indexOfColumn.Add("Lore", fields.ToList().IndexOf("description"));
                        firstLine = false;
                        continue;
                    }

                    var lang = fields[indexOfColumn["Lang"]];
                    if (!(lang == "en" || lang == "fr"))
                    {
                        continue;
                    }
                    var               idOfQuest = fields[indexOfColumn["Id"]];
                    QuestTemplate     qt        = new QuestTemplate();
                    QuestTemplateLore qtl       = new QuestTemplateLore();
                    QuestTemplateName qtn       = new QuestTemplateName();

                    //Read Data from line

                    //var questType = fields[indexOfColumn["Type"]];
                    qt.QuestTypeId = QuestType.Hunting;

                    int?targetId = null;
                    if ((qt.QuestTypeId == QuestType.Capture || qt.QuestTypeId == QuestType.Hunting) && !dictionary.ContainsKey(idOfQuest))
                    {
                        string target = fields[indexOfColumn["Goal"]];
                        target = target.Replace("Guide ", "");
                        target = target.Replace("Slay the ", "");
                        target = target.Replace("Slay an ", "");
                        target = target.Replace("Hunt an ", "");
                        target = target.Replace("Slay a ", "");
                        target = target.Replace("Slay ", "");
                        target = target.Replace("Hunt a ", "");
                        target = target.Replace("Capture an ", "");
                        target = target.Replace("Capture a ", "");
                        target = target.Replace(" or repel it", "");

                        targetId = mhthEntities.Monsters.FirstOrDefault(t => t.Name == target)?.Id;
                        if (targetId == null)
                        {
                            continue;
                        }
                    }

                    qt.QuestTemplateClientId = 1;
                    qt.QuestTemplateName     = qtn;
                    qt.QuestTemplateLore     = qtl;

                    if (!dictionary.ContainsKey(idOfQuest))
                    {
                        dictionary.Add(idOfQuest, qt);
                    }

                    if (fields[indexOfColumn["Lang"]] == "en")
                    {
                        dictionary[idOfQuest].QuestTemplateName.EN = fields[indexOfColumn["Name"]];
                        dictionary[idOfQuest].QuestTemplateLore.EN = fields[indexOfColumn["Lore"]];
                    }
                    else if (fields[indexOfColumn["Lang"]] == "fr")
                    {
                        dictionary[idOfQuest].QuestTemplateName.FR = fields[indexOfColumn["Name"]];
                        dictionary[idOfQuest].QuestTemplateLore.FR = fields[indexOfColumn["Lore"]];
                    }

                    if (targetId != null)
                    {
                        qt.MonsterId = targetId;
                    }

                    Console.Out.WriteLine(i++);
                }

                foreach (var entry in dictionary)
                {
                    qtlist.Add(entry.Value);
                }
                mhthEntities.QuestTemplates.AddRange(qtlist);
                mhthEntities.SaveChanges();
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: DNA666777/MHTH
        /// <summary>
        /// The update quest mhgu.
        /// </summary>
        private static void UpdateQuestMHGU()
        {
            using (TextFieldParser parser = new TextFieldParser(@".\CSVToImport\quests.csv"))
            {
                MHTHEntities mhthEntities = new MHTHEntities();

                parser.TextFieldType = FieldType.Delimited;
                parser.SetDelimiters("|");
                bool firstLine = true;
                Dictionary <string, int> indexOfColumn = new Dictionary <string, int>();
                int i = 1;
                while (!parser.EndOfData)
                {
                    //Processing row
                    string[] fields = parser.ReadFields();
                    if (firstLine)
                    {
                        indexOfColumn.Add("NameEN", fields.ToList().IndexOf("name"));
                        indexOfColumn.Add("NameFR", fields.ToList().IndexOf("name_fr"));
                        indexOfColumn.Add("Goal", fields.ToList().IndexOf("goal"));
                        indexOfColumn.Add("GoalFR", fields.ToList().IndexOf("goal_fr"));
                        indexOfColumn.Add("Type", fields.ToList().IndexOf("goal_type"));
                        indexOfColumn.Add("LoreEN", fields.ToList().IndexOf("flavor"));
                        indexOfColumn.Add("LoreFR", fields.ToList().IndexOf("flavor_fr"));
                        firstLine = false;
                        continue;
                    }

                    QuestTemplate     QT  = new QuestTemplate();
                    QuestTemplateLore QTL = new QuestTemplateLore();
                    QuestTemplateName QTN = new QuestTemplateName();

                    //Read Data from line

                    var questType = fields[indexOfColumn["Type"]];
                    switch (questType)
                    {
                    case "3":
                        QT.QuestTypeId = QuestType.Gathering;
                        break;

                    case "0":
                    case "1":
                        QT.QuestTypeId = QuestType.Hunting;
                        break;

                    case "2":
                        QT.QuestTypeId = QuestType.Capture;
                        break;

                    default:
                        continue;
                    }

                    int?targetId = null;
                    if (QT.QuestTypeId == QuestType.Capture || QT.QuestTypeId == QuestType.Hunting)
                    {
                        string target = fields[indexOfColumn["Goal"]];
                        target = target.Replace("Slay an ", "");
                        target = target.Replace("Hunt an ", "");
                        target = target.Replace("Slay a ", "");
                        target = target.Replace("Hunt a ", "");
                        target = target.Replace("Capture an ", "");
                        target = target.Replace("Capture a ", "");
                        target = target.Replace(" or repel it", "");

                        targetId = mhthEntities.Monsters.FirstOrDefault(t => t.Name == target)?.Id;
                        if (targetId == null)
                        {
                            continue;
                        }
                    }
                    else
                    {
                        continue;
                    }

                    QTN.EN = fields[indexOfColumn["NameEN"]];
                    QTN.FR = fields[indexOfColumn["NameFR"]];

                    QTL.EN = fields[indexOfColumn["LoreEN"]];
                    QTL.FR = fields[indexOfColumn["LoreFR"]];

                    if (targetId != null)
                    {
                        QT.MonsterId = targetId;
                    }

                    QT.QuestTemplateClientId = 1;

                    QT.QuestTemplateName = QTN;
                    QT.QuestTemplateLore = QTL;

                    mhthEntities.QuestTemplates.Add(QT);
                    mhthEntities.SaveChanges();
                    Console.Out.WriteLine(i++);
                }
            }
        }