Ejemplo n.º 1
0
 /// <summary>
 /// 判定伤害后技能影响
 /// </summary>
 /// <param name="src">攻击者</param>
 /// <param name="dest">受击者</param>
 /// <param name="damage">伤害值</param>
 public void CheckHitEffectAfter(LiveMonster src, LiveMonster dest, HitDamage damage)
 {
     foreach (var skill in Skills.ToArray())
     {
         var key = MemBaseSkill.GetBurstKey(src.Id, dest.Id);
         if (skill.IsBurst(key))
         {
             skill.CheckHitEffectAfter(src, dest, damage, key);
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 判定伤害技能影响
 /// </summary>
 /// <param name="src">攻击者</param>
 /// <param name="dest">受击者</param>
 /// <param name="isActive">是否主动</param>
 /// <param name="damage">伤害值</param>
 /// <param name="nodef">无视防御</param>
 public void CheckDamage(LiveMonster src, LiveMonster dest, bool isActive, HitDamage damage, ref bool nodef)
 {
     foreach (var skill in Skills.ToArray())
     {
         var key = MemBaseSkill.GetBurstKey(src.Id, dest.Id);
         if (skill.IsBurst(key))
         {
             skill.CheckDamage(src, dest, isActive, damage, ref nodef, key);
         }
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 判定hit技能影响
 /// </summary>
 /// <param name="src">攻击者</param>
 /// <param name="dest">受击者</param>
 /// <param name="rhit">命中</param>
 public void CheckHit(LiveMonster src, LiveMonster dest, ref int rhit)
 {
     foreach (var skill in Skills.ToArray())
     {
         var key = MemBaseSkill.GetBurstKey(src.Id, dest.Id);
         if (skill.IsBurst(key))
         {
             skill.CheckHit(src, dest, ref rhit, key);
         }
     }
 }
Ejemplo n.º 4
0
        public void AddSkillBeforeInit(List <RLIdValue> skills, SkillSourceTypes type)
        {
            foreach (var skillInfo in skills)
            {
                Skill skill = new Skill(skillInfo.Id);
                skill.UpgradeToLevel(self.Level);
                MemBaseSkill skillbase = new MemBaseSkill(skill, skillInfo.Value);
                skillbase.Type  = type;
                skillbase.Level = self.Level;
                skillbase.Self  = self;

                Skills.Add(skillbase);
            }
        }
Ejemplo n.º 5
0
        private List<MemBaseSkill> GetMemSkillDataForMonster()
        {
            List<MemBaseSkill> skills = new List<MemBaseSkill>();
            foreach (var skill in MonsterBook.GetSkillList(self.Avatar.MonsterConfig.Id))
            {
                int lukLevel = self.Level;
                Skill luk = new Skill(skill.Id);
                luk.UpgradeToLevel(lukLevel);
                MemBaseSkill baseSkill = new MemBaseSkill(luk, skill.Value) { Self = self, Level = lukLevel };
                skills.Add(baseSkill);
            }

            return skills;
        }
Ejemplo n.º 6
0
        private List <MemBaseSkill> GetMemSkillDataForMonster()
        {
            List <MemBaseSkill> skills = new List <MemBaseSkill>();

            foreach (var skill in MonsterBook.GetSkillList(self.Avatar.MonsterConfig.Id))
            {
                int   lukLevel = self.Level;
                Skill luk      = new Skill(skill.Id);
                luk.UpgradeToLevel(lukLevel);
                MemBaseSkill baseSkill = new MemBaseSkill(luk, skill.Value)
                {
                    Self = self, Level = lukLevel
                };
                skills.Add(baseSkill);
            }

            return(skills);
        }
Ejemplo n.º 7
0
        public void AddSkill(int sid, int slevel, int rate, SkillSourceTypes type)
        {
            foreach (MemBaseSkill memSkill in Skills)
            {
                if (memSkill.SkillId == sid)
                {
                    Skills.Remove(memSkill);
                    break;
                }
            }

            Skill skill = new Skill(sid);
            skill.UpgradeToLevel(slevel);
            MemBaseSkill skillbase = new MemBaseSkill(skill, rate);
            skillbase.Type = type;
            skillbase.Level = slevel;
            skillbase.Self = self;
            skillbase.CheckInitialEffect();
            Skills.Add(skillbase);
        }
Ejemplo n.º 8
0
        public void AddSkill(int sid, int slevel, int rate, SkillSourceTypes type)
        {
            foreach (var memSkill in Skills)
            {
                if (memSkill.SkillId == sid)
                {
                    Skills.Remove(memSkill);
                    break;
                }
            }

            Skill skill = new Skill(sid);

            skill.UpgradeToLevel(slevel);
            MemBaseSkill skillbase = new MemBaseSkill(skill, rate);

            skillbase.Type  = type;
            skillbase.Level = slevel;
            skillbase.Self  = self;
            skillbase.CheckInitialEffect();
            Skills.Add(skillbase);
        }