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)); }
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); } }
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); }