예제 #1
0
        public static bool Execute(MobileInstance ch, IManager dbManager)
        {
            var handler = Program.Kernel.Get <ISpecFunHandler>();

            ch.SummonIfHating();

            if (!ch.IsInCombatPosition())
            {
                return(false);
            }

            var victim =
                ch.CurrentRoom.Persons.Where(v => v != ch)
                .FirstOrDefault(vch => SmaugRandom.Bits(2) == 0 && vch.GetMyTarget() == ch);

            if (victim == null || victim == ch)
            {
                return(false);
            }

            var skill = handler.PickSpell(SpellLevelLookupTable, ch.Level);

            if (skill?.SpellFunction == null)
            {
                return(false);
            }

            skill.SpellFunction.Value.DynamicInvoke(skill.ID, ch.Level, ch, victim);
            return(true);
        }