コード例 #1
0
ファイル: SortNubiaSoin.cs プロジェクト: bsenyuva/terranubia3
        public void FinishSequence(Mobile cible)
        {
            Owner.Animate(13, 7, 1, true, false, 0);
            double Ddamage = (int)((Owner.Niveau + Utility.RandomMinMax(minDegat, maxDegat)) * (Maitrise / 100.0));

            Ddamage *= getRatio();
            int damage = (int)Ddamage;

            damage /= m_number;             //Donc en fait le minMax correspond au global !!

            if (Owner.CanBeBeneficial(cible))
            {
                cible.Heal(damage);
            }

            //if(cible.Combatant == null && cible != Owner)
            //	cible.Combatant = Owner;

            SortNubiaHelper.MakeEffect(Owner, cible, this, false, false);

            int       i       = 0;
            ArrayList targets = new ArrayList();

            foreach (Mobile m in cible.GetMobilesInRange(5))
            {
                if (m == cible || m == Owner.Combatant || !(Owner.CanBeBeneficial(m)))
                {
                    continue;
                }
                i++;
                if (i >= m_number)
                {
                    break;
                }

                SortNubiaHelper.MakeEffect(Owner, cible, this, false, false);

                if (m.Combatant == null)
                {
                    m.Combatant = Owner;
                }

                //m.Damage( damage , Owner );
                targets.Add(m);
            }
            int count = targets.Count;

            for (int t = 0; t < count; t++)
            {
                Mobile mob = targets[t] as Mobile;
                mob.Heal(damage);
            }
            EndSortNubia();             //important ;)
        }
コード例 #2
0
        public void FinishSequence(Mobile cible)
        {
            Owner.Animate(17, 7, 1, true, false, 0);
            bool mustExplose = false;

            int poisonLevel = m_minDegat;

            if (poisonLevel > 3)
            {
                poisonLevel = 3;
            }
            if (poisonLevel < 0)
            {
                poisonLevel = 0;
            }

            if (cible != Owner && Owner.CanBeHarmful(cible))
            {
                cible.Poison = Poison.GetPoison(poisonLevel);
            }
            else
            {
                m_number++;
            }

            if (cible.Combatant == null && cible != Owner)
            {
                cible.Combatant = Owner;
            }

            SortNubiaHelper.MakeEffect(Owner, cible, this, true, mustExplose);

            int       i       = 0;
            ArrayList targets = new ArrayList();

            foreach (Mobile m in cible.GetMobilesInRange(5))
            {
                if (m == Owner || m == cible || !(Owner.CanBeHarmful(m)))
                {
                    continue;
                }
                i++;
                if (i >= m_number)
                {
                    break;
                }

                SortNubiaHelper.MakeEffect(Owner, m, this, true, mustExplose);

                if (m.Combatant == null)
                {
                    m.Combatant = Owner;
                }

                //m.Damage( damage , Owner );
                targets.Add(m);
            }
            int count = targets.Count;

            for (int t = 0; t < count; t++)
            {
                Mobile mob = targets[t] as Mobile;
                mob.Poison = Poison.GetPoison(poisonLevel);
            }
            EndSortNubia();             //important ;)
        }