예제 #1
0
        public static TrainSkill read(BinaryReader binaryReader)
        {
            TrainSkill newObj = new TrainSkill();

            newObj.i_stype = (STypeSkill)binaryReader.ReadUInt32();
            Util.readToAlign(binaryReader);
            newObj.i_xp_spent = binaryReader.ReadUInt32();
            Util.readToAlign(binaryReader);
            return(newObj);
        }
예제 #2
0
 internal static TrainSkill CreateRules(TrainSkill skill)
 {
     skill.CodeOfSkill = skill.NameOfSkill;
     skill.CodeOfSkill = skill.CodeOfSkill.ToLower();
     if (skill.CodeOfSkill.Contains("("))
     {
         skill.CodeOfSkill = skill.CodeOfSkill.Remove(skill.CodeOfSkill.IndexOf('('), skill.CodeOfSkill.IndexOf(')') - skill.CodeOfSkill.IndexOf('(') + 1);
     }
     foreach (var ru in rule.rules)
     {
         if (skill.CodeOfSkill.Contains(ru.Item1))
         {
             skill.CodeOfSkill = skill.CodeOfSkill.Replace(ru.Item1, ru.Item2);
         }
     }
     return(skill);
 }
        /// <summary>
        /// Check all names of main and second skill
        /// </summary>
        /// <param name="mainTrainSkill"></param>
        /// <param name="secondTrainSkill"></param>
        /// <returns>Desigion</returns>
        private static bool?CheckAllNames(TrainSkill mainTrainSkill, TrainSkill secondTrainSkill)
        {
            bool?fl = null;

            if (mainTrainSkill.Skills.Count == 0 && secondTrainSkill.Skills.Count == 0)
            {
                return(CheckTwoValue(mainTrainSkill.CodeOfSkill, secondTrainSkill.CodeOfSkill));
            }
            else
            {
                List <string> mainCodes   = new List <string>();
                List <string> secondCodes = new List <string>();

                mainCodes.Add(mainTrainSkill.CodeOfSkill);
                secondCodes.Add(secondTrainSkill.CodeOfSkill);

                foreach (TrainSkill skill in mainTrainSkill.Skills)
                {
                    mainCodes.Add(skill.CodeOfSkill);
                }
                foreach (TrainSkill skill in secondTrainSkill.Skills)
                {
                    secondCodes.Add(skill.CodeOfSkill);
                }

                foreach (string str1 in mainCodes)
                {
                    foreach (string str2 in secondCodes)
                    {
                        var temp = CheckTwoValue(str1, str2);
                        if (temp == true)
                        {
                            mainTrainSkill.Skills.AddRange(secondTrainSkill.Skills); return(true);
                        }
                        if (temp == false)
                        {
                            fl = false;
                        }
                    }
                }
            }
            return(fl);
        }
예제 #4
0
    public override bool acceptMessageData(BinaryReader messageDataReader, TreeView outputTreeView)
    {
        bool handled = true;

        PacketOpcode opcode = Util.readOpcode(messageDataReader);

        switch (opcode)
        {
        case PacketOpcode.Evt_Train__TrainAttribute2nd_ID: {
            TrainAttribute2nd message = TrainAttribute2nd.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Train__TrainAttribute_ID: {
            TrainAttribute message = TrainAttribute.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Train__TrainSkill_ID: {
            TrainSkill message = TrainSkill.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        case PacketOpcode.Evt_Train__TrainSkillAdvancementClass_ID: {
            TrainSkillAdvancementClass message = TrainSkillAdvancementClass.read(messageDataReader);
            message.contributeToTreeView(outputTreeView);
            break;
        }

        default: {
            handled = false;
            break;
        }
        }

        return(handled);
    }
예제 #5
0
        public void TestMethod1()
        {
            TrainSkill MySQL1 = new TrainSkill {
                CodeOfSkill = "mysql", NameOfSkill = "MySQL"
            };
            TrainSkill MySQL2 = new TrainSkill {
                CodeOfSkill = "mysql", NameOfSkill = "MySQL"
            };
            TrainSkill MSSQL = new TrainSkill {
                CodeOfSkill = "mssql", NameOfSkill = "MS SQL"
            };
            TrainSkill SQL = new TrainSkill {
                CodeOfSkill = "sql", NameOfSkill = "SQL"
            };

            SQL.Skills.Add(MySQL2);
            List <TrainSkill> skills = new List <TrainSkill>();

            skills.AddRange(new List <TrainSkill> {
                SQL, MSSQL
            });
            DahmerauLevenshteinAlg.Start(skills);
        }
예제 #6
0
    public static Skill GetNewSkill(SkillData.RootObject skillData, BattleCharacterInfo user, int lv)
    {
        Skill skill = new Skill();

        if (skillData.Type == SkillData.TypeEnum.Attack)
        {
            skill = new AttackSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Cure)
        {
            skill = new CureSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Buff)
        {
            skill = new BuffSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Poison)
        {
            skill = new PoisonSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Paralysis)
        {
            skill = new ParalysisSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Sleeping)
        {
            skill = new SleepSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.ClearAbnormal)
        {
            skill = new ClearAbnormalSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Field)
        {
            skill = new FieldSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.CureItem)
        {
            skill = new CureItemSkill(skillData, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Striking)
        {
            skill = new StrikingSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.CureLeastHP)
        {
            skill = new CureLeastHPSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Summon)
        {
            skill = new SummonSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Train)
        {
            skill = new TrainSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.Donothing)
        {
            skill = new DonothingSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.RecoverMP)
        {
            skill = new RecoverMPItemSkill(skillData, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.RageAttack)
        {
            skill = new RageAttackSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.AbnormalAttack)
        {
            skill = new AbnormalAttackSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.CancelAction)
        {
            skill = new CancelActionSkill(skillData, user, lv);
        }
        else if (skillData.Type == SkillData.TypeEnum.CureMySelf)
        {
            skill = new CureMyselfSkill(skillData, user, lv);
        }

        return(skill);
    }