public static void GainSkill(SkillName name)
        {
            var skill = LearnedSkills.FirstOrDefault(x => x.Name == name);

            //新技能
            if (skill == null)
            {
                skill = ActivedSkills.FirstOrDefault(x => x.Name == name).Clone();

                SkillUpdater.NewSkill(skill);
                LearnedSkills.Add(skill);
                BattleUpdater.UpdateMessage("学会" + ((skill.RareDegree == SkillRareDegree.Rare) ? "稀有" : "") + "技能:" + skill.DisplayName);
            }
            else
            {
                if (skill.Level != 3)
                {
                    skill.LevelUp();
                    SkillUpdater.UpgradeSkill(skill);
                    BattleUpdater.UpdateMessage("技能 " + skill.DisplayName + " 提升至" + skill.Level.ToString() + "级");
                }
                else
                {
                    Hero.GetExp(15);
                    BattleUpdater.UpdateMessage("技能已提升至满级,转化为15点经验值");
                }
            }
        }
Exemple #2
0
        private static void InitFearlessWarrior()
        {
            GameInfo.ActivedSkills.Clear();
            GameInfo.LearnedSkills.Clear();

            #region 初始化本局对战中可能获得的技能
            {
                var skill = new BaseSkill();
                skill.DisplayName       = "挥击";
                skill.Name              = SkillName.挥击;
                skill.Type              = SkillType.None;
                skill.RareDegree        = SkillRareDegree.Normal;
                skill.DamageType        = DamageType.Physical;
                skill.BaseDamage        = 5;
                skill.SkillRatio        = 20;
                skill.Level             = 0;
                skill.Price             = 50;
                skill.Cost              = 0;
                skill.Startup           = 4;
                skill.Description       = "";
                skill.DescriptionLevel1 = "基础伤害 + 3";
                skill.DescriptionLevel2 = "技能加成提升20%";
                skill.DescriptionLevel3 = "在一局对战中,每释放四次此技能获得一层精湛";
                skill.LevelUp           = () =>
                {
                    skill.Level++;
                    if (skill.Level == 1)
                    {
                        skill.BaseDamage += 3;
                    }
                    else if (skill.Level == 2)
                    {
                        skill.SkillRatio += 20;
                    }
                };
                GameInfo.ActivedSkills.Add(skill);
            }

            {
                var skill = new BaseSkill();
                skill.DisplayName       = "重击";
                skill.Name              = SkillName.重击;
                skill.Type              = SkillType.Fire;
                skill.RareDegree        = SkillRareDegree.Normal;
                skill.DamageType        = DamageType.Physical;
                skill.BaseDamage        = 8;
                skill.SkillRatio        = 40;
                skill.Level             = 0;
                skill.Price             = 70;
                skill.Cost              = 0;
                skill.Startup           = 2;
                skill.Description       = "给与对手一层易伤";
                skill.DescriptionLevel1 = "基础伤害 + 5";
                skill.DescriptionLevel2 = "技能加成提升40%";
                skill.DescriptionLevel3 = "回复8点生命值";
                skill.LevelUp           = () =>
                {
                    skill.Level++;
                    if (skill.Level == 1)
                    {
                        skill.BaseDamage += 5;
                    }
                    else if (skill.Level == 2)
                    {
                        skill.SkillRatio += 40;
                    }
                };
                GameInfo.ActivedSkills.Add(skill);
            }

            {
                var skill = new BaseSkill();
                skill.DisplayName       = "裂地斩";
                skill.Name              = SkillName.裂地斩;
                skill.Type              = SkillType.Pure;
                skill.RareDegree        = SkillRareDegree.Normal;
                skill.DamageType        = DamageType.Magic;
                skill.BaseDamage        = 6;
                skill.SkillRatio        = 50;
                skill.Level             = 0;
                skill.Price             = 60;
                skill.Cost              = 2;
                skill.Startup           = 2;
                skill.Description       = "给与对手一层寒冷";
                skill.DescriptionLevel1 = "技能消耗 - 2";
                skill.DescriptionLevel2 = "技能加成提升50%";
                skill.DescriptionLevel3 = "给与对手一层涣散";
                skill.LevelUp           = () =>
                {
                    skill.Level++;
                    if (skill.Level == 1)
                    {
                        skill.Cost -= 2;
                    }
                    else if (skill.Level == 2)
                    {
                        skill.SkillRatio += 50;
                    }
                };
                GameInfo.ActivedSkills.Add(skill);
            }

            {
                var skill = new BaseSkill();
                skill.DisplayName       = "神圣之力";
                skill.Name              = SkillName.神圣之力;
                skill.Type              = SkillType.Holy;
                skill.RareDegree        = SkillRareDegree.Rare;
                skill.DamageType        = DamageType.None;
                skill.BaseDamage        = 0;
                skill.SkillRatio        = 0;
                skill.Level             = 0;
                skill.Price             = 160;
                skill.Cost              = 8;
                skill.Startup           = 1;
                skill.Description       = "获得一层不死";
                skill.DescriptionLevel1 = "技能消耗 - 3";
                skill.DescriptionLevel2 = "回复最大生命值的15%";
                skill.DescriptionLevel3 = "发动系数提升 1";
                skill.LevelUp           = () =>
                {
                    skill.Level++;
                    if (skill.Level == 1)
                    {
                        skill.Cost -= 3;
                    }
                    else if (skill.Level == 3)
                    {
                        skill.Startup += 1;
                    }
                };
                GameInfo.ActivedSkills.Add(skill);
            }

            {
                var skill = new BaseSkill();
                skill.DisplayName       = "寒冰之心";
                skill.Name              = SkillName.寒冰之心;
                skill.Type              = SkillType.Pure;
                skill.RareDegree        = SkillRareDegree.Rare;
                skill.DamageType        = DamageType.None;
                skill.BaseDamage        = 0;
                skill.SkillRatio        = 0;
                skill.Level             = 0;
                skill.Price             = 160;
                skill.Cost              = 4;
                skill.Startup           = 1;
                skill.Description       = "获得一层护盾";
                skill.DescriptionLevel1 = "启动一个技能";
                skill.DescriptionLevel2 = "获得一层启迪,获得一层石肤";
                skill.DescriptionLevel3 = "发动系数提升 1";
                skill.LevelUp           = () =>
                {
                    skill.Level++;
                    if (skill.Level == 3)
                    {
                        skill.Startup += 1;
                    }
                };
                GameInfo.ActivedSkills.Add(skill);
            }


            {
                var skill = new BaseSkill();
                skill.DisplayName       = "灵界打击";
                skill.Name              = SkillName.灵界打击;
                skill.Type              = SkillType.Shadow;
                skill.RareDegree        = SkillRareDegree.Rare;
                skill.DamageType        = DamageType.Magic;
                skill.BaseDamage        = 18;
                skill.SkillRatio        = 120;
                skill.Level             = 0;
                skill.Price             = 160;
                skill.Cost              = 4;
                skill.Startup           = 1;
                skill.Description       = "回复10点生命值";
                skill.DescriptionLevel1 = "技能加成提升120%";
                skill.DescriptionLevel2 = "给与对手一层萎靡";
                skill.DescriptionLevel3 = "发动系数提升 1";
                skill.LevelUp           = () =>
                {
                    skill.Level++;
                    if (skill.Level == 1)
                    {
                        skill.SkillRatio += 120;
                    }
                    else if (skill.Level == 3)
                    {
                        skill.Startup += 1;
                    }
                };
                GameInfo.ActivedSkills.Add(skill);
            }
            #endregion

            #region 初始化默认技能

            //挥击
            var skill1 = GameInfo.ActivedSkills.FirstOrDefault(x => x.Name == SkillName.挥击);
            SkillUpdater.NewSkill(skill1);
            GameInfo.LearnedSkills.Add(skill1);

            //重击
            var skill2 = GameInfo.ActivedSkills.FirstOrDefault(x => x.Name == SkillName.重击);
            SkillUpdater.NewSkill(skill2);
            GameInfo.LearnedSkills.Add(skill2);

            //裂地斩
            var skill3 = GameInfo.ActivedSkills.FirstOrDefault(x => x.Name == SkillName.裂地斩);
            SkillUpdater.NewSkill(skill3);
            GameInfo.LearnedSkills.Add(skill3);
            #endregion

            return;
        }