Beispiel #1
0
        public override bool OnDragDrop(Mobile from, Item dropped)
        {
            PlayerMobile player = from as PlayerMobile;

            if (this is IEvoGuardian)
            {
                return(base.OnDragDrop(from, dropped));
            }

            if (null != ControlMaster && ControlMaster.Followers > ControlMaster.FollowersMax)
            {
                ControlMaster.SendMessage(Name + " is not interested in that now!");
                return(false);
            }

            if (null != player && dropped.GetType() == GetEvoDustType())
            {
                BaseEvoDust dust = dropped as BaseEvoDust;

                if (null != dust)
                {
                    int amount = (dust.Amount * m_DustMultiplier);

                    m_Ep += amount;
                    PlaySound(665);
                    dust.Delete();
                    Emote("*" + this.Name + " absorbs the " + dust.Name + " gaining " + amount + " experience points*");
                    return(true);
                }
                return(false);
            }
            return(base.OnDragDrop(from, dropped));
        }
Beispiel #2
0
        public override void OnThink()
        {
            base.OnThink();

            if (this is IEvoGuardian)
            {
                return;
            }

            else if (null != ControlMaster && ControlMaster.Followers > ControlMaster.FollowersMax && kOverLimitLossChance >= Utility.RandomDouble())
            {
                ControlMaster.SendMessage(Name + " is losing confidence in your ability to control so many creatures!");
                Say(1043270, Name);                   // * ~1_NAME~ looks around desperately *
                PlaySound(GetIdleSound());
                if (Loyalty > BaseCreature.MaxLoyalty / 10)
                {
                    Loyalty--;
                }
            }
            else if (m_AlwaysHappy && DateTime.Now >= m_NextHappyTime && null != ControlMaster && ControlMaster.Map == Map)
            {
                Loyalty         = BaseCreature.MaxLoyalty;
                m_NextHappyTime = DateTime.Now + TimeSpan.FromMinutes(30.0);
            }
        }
Beispiel #3
0
        private void AddPoints(Mobile defender)
        {
            if (defender == null || defender.Deleted)
            {
                return;
            }

            if (defender is TrainingElemental && m_Stage >= m_MaxTrainingStage && null != ControlMaster)
            {
                Emote("*stops fighting*");
                Combatant     = null;
                ControlTarget = ControlMaster;
                ControlOrder  = OrderType.Follow;
                ControlMaster.SendMessage("Your pet can no longer gain experience points fighting Training Elementals!");
            }
            else if (defender is BaseCreature)
            {
                BaseCreature bc = (BaseCreature)defender;

                if (bc.Controlled != true)
                {
                    m_Ep += Utility.RandomMinMax(5 + (bc.HitsMax) / m_EpMinDivisor, 5 + (bc.HitsMax) / m_EpMaxDivisor);
                }

                if (m_Stage < m_FinalStage && m_Ep >= m_NextEpThreshold)
                {
                    Evolve(false);
                }
            }
        }
        public override void OnDeath(Container c)
        {
            if (ControlMaster != null)
            {
                TeiravonMobile m_Player = (TeiravonMobile)ControlMaster;

                m_Player.WarMountDeaths += 1;
                ControlMaster.SendMessage("Your War Mount has died.", m_Player.WarMountDeaths);
            }

            base.OnDeath(c);
        }