public void Target( Mobile m )
		{
			Type t = m.GetType();
			bool dispellable = false;

			if ( m is BaseCreature )
				dispellable = ((BaseCreature)m).Summoned;

			if ( !Caster.CanSee( m ) )
			{
				Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
			}
			else if ( !dispellable )
			{
				Caster.SendLocalizedMessage( 1005049 ); // That cannot be dispelled.
			}
			else if ( CheckHSequence( m ) )
			{
				SpellHelper.Turn( Caster, m );

				if ( CheckResisted( m ) )
				{
					m.FixedEffect( 0x3779, 10, 20 );
				}
				else
				{
					Effects.SendLocationParticles( EffectItem.Create( m.Location, m.Map, EffectItem.DefaultDuration ), 0x3728, 8, 20, 5042 );
					Effects.PlaySound( m, m.Map, 0x201 );

					m.Delete();
				}
			}

			FinishSequence();
		}
Example #2
0
        public void Target( Mobile m )
        {
            BaseCreature bc = m as BaseCreature;

            if ( !Caster.CanSee( m ) )
            {
                Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
            }
            else if ( bc == null || !bc.IsDispellable )
            {
                Caster.SendLocalizedMessage( 1005049 ); // That cannot be dispelled.
            }
            else if ( CheckHSequence( m ) )
            {
                SpellHelper.Turn( Caster, m );

                double dispelChance = ( 50.0 + ( ( 100 * ( Caster.Skills.Magery.Value - bc.DispelDifficulty ) ) / ( bc.DispelFocus * 2 ) ) ) / 100;

                if ( dispelChance > Utility.RandomDouble() )
                {
                    Effects.SendLocationParticles( EffectItem.Create( m.Location, m.Map, EffectItem.DefaultDuration ), 0x3728, 8, 20, 5042 );
                    Effects.PlaySound( m, m.Map, 0x201 );

                    m.Delete();
                }
                else
                {
                    m.FixedEffect( 0x3779, 10, 20 );
                    Caster.SendLocalizedMessage( 1010084 ); // The creature resisted the attempt to dispel it!
                }
            }

            FinishSequence();
        }
		private static Mobile GetOwner()
		{
			Mobile apprentice = new Mobile();

			apprentice.Hue = Utility.RandomSkinHue();
			apprentice.Female = false;
			apprentice.Body = 0x190;

			apprentice.Delete();

			return apprentice;
		}
Example #4
0
        private static void EventSink_DeleteRequest(DeleteRequestEventArgs e)
        {
            NetState state = e.State;
            int      index = e.Index;

            Account acct = state.Account as Account;

            if (acct == null)
            {
                state.Dispose();
            }
            else if (index < 0 || index >= acct.Length)
            {
                state.Send(new DeleteResult(DeleteResultType.BadRequest));
                state.Send(new CharacterListUpdate(acct));
            }
            else
            {
                Mobile m = acct[index];

                if (m == null)
                {
                    state.Send(new DeleteResult(DeleteResultType.CharNotExist));
                    state.Send(new CharacterListUpdate(acct));
                }
                else if (m.NetState != null)
                {
                    state.Send(new DeleteResult(DeleteResultType.CharBeingPlayed));
                    state.Send(new CharacterListUpdate(acct));
                }
                else if (RestrictDeletion && DateTime.Now < (m.CreationTime + DeleteDelay))
                {
                    state.Send(new DeleteResult(DeleteResultType.CharTooYoung));
                    state.Send(new CharacterListUpdate(acct));
                }
                else if (m.AccessLevel == AccessLevel.Player && Region.Find(m.LogoutLocation, m.LogoutMap).GetRegion(typeof(Jail)) != null)                             //Don't need to check current location, if netstate is null, they're logged out
                {
                    state.Send(new DeleteResult(DeleteResultType.BadRequest));
                    state.Send(new CharacterListUpdate(acct));
                }
                else
                {
                    Console.WriteLine("Client: {0}: Deleting character {1} (0x{2:X}) [{3}]", state, index, m.Serial.Value, acct.Username);

                    acct.Comments.Add(new AccountComment("System", String.Format("Character #{0} {1} deleted by {2}", index + 1, m, state)));

                    m.Delete();
                    state.Send(new CharacterListUpdate(acct));
                }
            }
        }
Example #5
0
        private void DeleteImp(Mobile m)
        {
            if (m != null && !m.Deleted)
            {
                Effects.SendLocationEffect(m.Location, m.Map, 0x3728, 10, 10);
                Effects.PlaySound(m.Location, m.Map, 0x1FE);

                m.Delete();
            }

            System.From.SendLocalizedMessage(1055062);               // You have received the Magic Brew Recipe.

            System.AddConversation(new ZeefzorpulConversation());
        }
Example #6
0
        private static Mobile GetOwner()
        {
            Mobile apprentice = new Mobile
            {
                Hue    = Utility.RandomSkinHue(),
                Female = false,
                Body   = 0x190,
                Name   = NameList.RandomName("male")
            };

            apprentice.Delete();

            return(apprentice);
        }
Example #7
0
        private static void SummonUndead(Mobile from)
        {
            Mobile undead = UndeadTable[Utility.Random(UndeadTable.Length)].Spawn();

            undead.MoveToWorld(new Point3D(from.X, from.Y + 1, from.Z), from.Map);
            undead.Say(Utility.Random(1071135, 10));

            Effects.PlaySound(from.Location, from.Map, 0x17F);
            Effects.SendLocationParticles(from, 0x373A, 1, 17, 0x454, 7, 0x26BA, 0);
            Effects.SendLocationParticles(from, 0x376A, 1, 22, 0x43, 7, 0x251E, 0);

            Timer.DelayCall(TimeSpan.FromSeconds(2.0), new TimerCallback(
                                delegate { undead.Delete(); }));
        }
            protected override void OnTick()
            {
                for (int i = 0; i < m_Items.Count; i++) //Delete the boat and any items inside
                {
                    Item item = m_Items[i];
                    item.Delete();
                }

                for (int i = 0; i < m_Spawns.Count; i++) //If any spawns still exist, delete them
                {
                    Mobile m = m_Spawns[i];
                    m.Delete();
                }
            }
Example #9
0
        public static void KillAtSea(Mobile m)
        {
            if (!(m is PlayerMobile))
            {
                m.Delete();
                return;
            }

            Effects.PlaySound(m.Location, m.Map, 0x021);

            m.LastKiller = null;
            m.Kill();
            m.MoveToWorld(FindRandomNearbyLand(m.Location, m.Map), m.Map);
            SendDelayedMessage(m, @"You wash ashore on a unfamiliar land.", TimeSpan.FromSeconds(2));
        }
Example #10
0
        public void Target(Mobile o)
        {
            Mobile       m    = (Mobile)o;
            BaseCreature bc   = m as BaseCreature;
            var          from = Caster;

            if (!from.CanSee(m))
            {
                from.SendLocalizedMessage(500237); // Target can not be seen.
                return;
            }

            if (bc == null || !bc.IsDispellable)
            {
                var res = DoDispell(from, m);
                if (res)
                {
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                    Effects.PlaySound(m, m.Map, 0x201);
                    from.SendAsciiMessage("You dispel an effect.");
                }
                else
                {
                    m.FixedEffect(0x3779, 10, 20);
                    from.SendAsciiMessage("There is nothing to dispel.");
                }
            }
            else if (CheckHSequence(m))
            {
                SpellHelper.Turn(from, m);

                double dispelChance = (50.0 + ((100 * (from.Skills.Magery.Value - bc.DispelDifficulty)) / (bc.DispelFocus * 2))) / 100;

                if (dispelChance > Utility.RandomDouble())
                {
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                    Effects.PlaySound(m, m.Map, 0x201);

                    m.Delete();
                }
                else
                {
                    m.FixedEffect(0x3779, 10, 20);
                    from.SendLocalizedMessage(1010084); // The creature resisted the attempt to dispel it!
                }
            }
            FinishSequence();
        }
Example #11
0
        public void Target( Mobile m )
        {
            Type t = m.GetType();
            bool dispellable = false;

            if ( m is BaseCreature )
                dispellable = ((BaseCreature)m).Summoned && !((BaseCreature)m).IsAnimatedDead;

            if ( !Caster.CanSee( m ) )
            {
                Caster.SendLocalizedMessage( 500237 ); // Target can not be seen.
            }
            else if ( !dispellable )
            {
                Caster.SendLocalizedMessage( 1005049 ); // That cannot be dispelled.
            }
            else if ( CheckHSequence( m ) )
            {
                SpellHelper.Turn( Caster, m );

                int diff;
                if ( m is Daemon )
                    diff = 95;
                else if ( m is EnergyVortex )
                    diff = 80;
                else if ( m is FireElemental || m is WaterElemental || m is AirElemental || m is EarthElemental )
                    diff = 75;
                else if ( m is BladeSpirit )
                    diff = 50;
                else
                    diff = 0;

                if ( Caster.Skills[SkillName.Magery].Value >= Utility.Random( 41 )-20+diff )
                {
                    Effects.SendLocationParticles( EffectItem.Create( m.Location, m.Map, EffectItem.DefaultDuration ), 0x3728, 8, 20, 5042 );
                    Effects.PlaySound( m, m.Map, 0x201 );

                    m.Delete();
                }
                else
                {
                    m.Animate( 14201, 10, 20, true, false, 0 );
                    Caster.SendAsciiMessage( "{0} resisted the attempt to dispell it!", m.Name );
                }
            }

            FinishSequence();
        }
Example #12
0
        public override void OnDelete()
        {
            m_Region.Unregister();

            if (m_vendorlist.Count > 0)
            {
                for (int i = 0; i < m_vendorlist.Count; i++)
                {
                    Mobile vend = m_vendorlist[i];
                    vend.Delete();
                }
                m_vendorlist.Clear();
            }

            this.Stone.CheckVendors(false);
        }
        public void SpawnMob(Mobile m)
        {
            Point3D loc = GetRandomRegionPoint();

            if (loc.X != 0 && loc.Y != 0)
            {
                m.Location = loc;
                m.Map      = regionmap;
                Spawn.Add(m);
            }
            else
            {
                m.Delete();
                return;
            }
        }
Example #14
0
            public override void OnClick()
            {
                if (_Mannequin.Backpack != null && _Mannequin.Backpack.Items.Any())
                {
                    _From.SendLocalizedMessage(1153315); // You must empty the mannequin's backpack before re-deeding.
                    return;
                }

                List <Item> mannequinItems = _Mannequin.Items.Where(x => IsEquipped(x)).ToList();

                mannequinItems.ForEach(x => _From.AddToBackpack(x));

                _Mannequin.Delete();

                _From.AddToBackpack(new StewardDeed());
            }
Example #15
0
        protected virtual void OnGiveReward(ConquestState s, Mobile reward)
        {
            if (s == null || s.User == null || reward == null || reward.Deleted)
            {
                return;
            }

            if (s.User.IsOnline())
            {
                reward.MoveToWorld(s.User.Location, s.User.Map);
            }
            else
            {
                reward.Delete();
            }
        }
Example #16
0
        public static void BlowUp(Mobile from, BaseCreature bc)
        {
            List <Mobile> targets = new List <Mobile>();

            Map map = from.Map;

            if (map != null && from != null)
            {
                foreach (Mobile m in from.GetMobilesInRange(from.RawDex))
                {
                    if (from.InLOS(m) && m.Alive && from.CanBeHarmful(m) && !m.Blessed && from != m && bc.ControlMaster != m && bc.SummonMaster != m)
                    {
                        targets.Add(m);
                    }
                }
                for (int i = 0; i < targets.Count; ++i)
                {
                    Mobile m = targets[i];

                    int physDamage = 100;
                    int fireDamage = 0;
                    int coldDamage = 0;
                    int poisDamage = 0;
                    int nrgyDamage = 0;

                    if (from.RawInt > 10)
                    {
                        physDamage = 40;
                        fireDamage = 40;
                        coldDamage = 0;
                        poisDamage = 0;
                        nrgyDamage = 20;

                        Effects.SendLocationEffect(m.Location, m.Map, 0x3822, 60, 10, 0, 0);
                        m.PlaySound(0x307);
                    }
                    else
                    {
                        Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 0, 0, 5042, 0);
                        m.PlaySound(0x664);
                    }
                    AOS.Damage(m, from, from.RawStr, physDamage, fireDamage, coldDamage, poisDamage, nrgyDamage);
                }

                from.Delete();
            }
        }
Example #17
0
        public static void EndControl(ControlItem controlItem, bool stats, bool skills, bool items)
        {
            Mobile       from      = controlItem.Owner;
            PlayerMobile oldPlayer = controlItem.Player;
            Mobile       oldNPC    = controlItem.NPC;

            if (from == null)
            {
                return;
            }

            from.SendMessage("Du bist wieder in deiner alten Gestallt");
            //"You are in your original Body"

            //NPC wiederherstellen
            if (oldNPC != null && !oldNPC.Deleted)
            {
                //Props immer übernehmen bei der Rückverwandlung?
                //ja, weil sich hits etc ändern
                //Props from -> oldNPC
                CopyProps(oldNPC, from, stats, skills);
                //nicht nur zurück holen:
                //if ( oldNPC.Map == Map.Internal )
                //	oldNPC.MoveToWorld(from.Location, from.Map);


                //Equip from -> oldNPC
                MoveEquip(from, oldNPC, items);
            }
            else
            {
                from.SendMessage("Der originale NPC wurde gelöscht und wird nicht wiederhergestellt. Grund könnte ein manueller Respawn gewesen sein");
                //"The original NPC was deleted. Maybe because a manual respawn"
                oldNPC.Delete();
            }

            if (oldPlayer != null && !oldPlayer.Deleted)
            {
                //Spieler Wiederherstellen (100%)
                //Props: oldPlayer -> player
                CopyProps(from, oldPlayer, true, true);
                //Equip: oldPlayer -> player
                MoveEquip(oldPlayer, from, true);

                oldPlayer.Delete();
            }
        }
Example #18
0
        public void Target(Mobile m)
        {
            Type t           = m.GetType();
            bool dispellable = false;

            if (m is BaseCreature)
            {
                dispellable = ((BaseCreature)m).Summoned && !((BaseCreature)m).IsAnimatedDead;
            }

            if (!Caster.CanSee(m))
            {
                Caster.SendLocalizedMessage(500237);                   // Target can not be seen.
            }
            else if (!dispellable)
            {
                Caster.SendLocalizedMessage(1005049);                   // That cannot be dispelled.
            }
            else if (CheckHSequence(m))
            {
                SpellHelper.Turn(Caster, m);

                BaseCreature bc = m as BaseCreature;

                double dispelChance = 0;

                if (bc != null)
                {
                    dispelChance = (50.0 + ((100 * (Caster.Skills.Magery.Value - bc.DispelDifficulty)) / (bc.DispelFocus * 2))) / 100;
                }

                if (dispelChance > Utility.RandomDouble())
                {
                    Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                    Effects.PlaySound(m, m.Map, 0x201);

                    m.Delete();
                }
                else
                {
                    m.FixedEffect(0x3779, 10, 20);
                    Caster.SendLocalizedMessage(1010084);                       // The creature resisted the attempt to dispel it!
                }
            }

            FinishSequence();
        }
Example #19
0
        public override void DeleteAllInstances()
        {
            Queue m_Queue = new Queue();

            foreach (Mobile mobile in m_Mobiles)
            {
                m_Queue.Enqueue(mobile);
            }

            while (m_Queue.Count > 0)
            {
                Mobile mobile = (Mobile)m_Queue.Dequeue();

                m_Mobiles.Remove(mobile);
                mobile.Delete();
            }
        }
Example #20
0
        public override void OnHit(Mobile attacker, Mobile defender, ref int damage)
        {
            if (!Validate(attacker))
            {
                return;
            }

            if (defender is BaseCreature bc && bc.IsDispellable)
            {
                Effects.SendLocationParticles(
                    EffectItem.Create(defender.Location, defender.Map, EffectItem.DefaultDuration), 0x3728, 8, 20,
                    5042);
                Effects.PlaySound(defender, 0x201);

                defender.Delete();
            }
        }
Example #21
0
        public void Target(IPoint3D o)
        {
            if (!Caster.CanSee(o))
            {
                Caster.SendLocalizedMessage(500237); // Target can not be seen.
            }
            else if (!CheckLineOfSight(o))
            {
                this.DoFizzle();
                Caster.SendAsciiMessage("Target is not in line of sight");
            }
            else if (o is Mobile)
            {
                Mobile       m    = (Mobile)o;
                BaseCreature bc   = m as BaseCreature;
                Mobile       from = Caster;

                if (!from.CanSee(m))
                {
                    from.SendLocalizedMessage(500237); // Target can not be seen.
                }
                else if (bc == null || !bc.IsDispellable)
                {
                    from.SendLocalizedMessage(1005049); // That cannot be dispelled.
                }
                else if (CheckHSequence(m))
                {
                    SpellHelper.Turn(from, m);

                    double dispelChance = (50.0 + ((100 * (from.Skills.Magery.Value - bc.DispelDifficulty)) / (bc.DispelFocus * 2))) / 100;

                    if (dispelChance > Utility.RandomDouble())
                    {
                        Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                        Effects.PlaySound(m, m.Map, 0x201);

                        m.Delete();
                    }
                    else
                    {
                        m.FixedEffect(0x3779, 10, 20);
                        from.SendLocalizedMessage(1010084); // The creature resisted the attempt to dispel it!
                    }
                }
            }
        }
Example #22
0
        private static void EventSink_DeleteRequest(DeleteRequestEventArgs e)
        {
            GameClient state = e.State;
            int        index = e.Index;

            Account acct = state.Account as Account;

            if (acct == null)
            {
                state.Dispose();
            }
            else if (index < 0 || index >= acct.Length)
            {
                state.Send(new DeleteResult(DeleteResultType.BadRequest));
                state.Send(new CharacterListUpdate(acct));
            }
            else
            {
                Mobile m = acct[index];

                if (m == null)
                {
                    state.Send(new DeleteResult(DeleteResultType.CharNotExist));
                    state.Send(new CharacterListUpdate(acct));
                }
                else if (m.Client != null)
                {
                    state.Send(new DeleteResult(DeleteResultType.CharBeingPlayed));
                    state.Send(new CharacterListUpdate(acct));
                }
                else if (RestrictDeletion && DateTime.Now < (m.CreationTime + DeleteDelay))
                {
                    state.Send(new DeleteResult(DeleteResultType.CharTooYoung));
                    state.Send(new CharacterListUpdate(acct));
                }
                else
                {
                    Console.WriteLine("Client: {0}: Deleting character {1} (0x{2:X})", state, index, m.Serial.Value);

                    acct.Comments.Add(new AccountComment("System", String.Format("Character #{0} {1} deleted by {2}", index + 1, m, state)));

                    m.Delete();
                    state.Send(new CharacterListUpdate(acct));
                }
            }
        }
Example #23
0
        public static void RemovePatrons(TavernTable table)
        {
            List <Mobile> targets = new List <Mobile>();

            foreach (Mobile m in table.GetMobilesInRange(1))
            {
                if (m.Map == table.Map && m is HouseVisitor && (m == table.DrinkerNorth || m == table.DrinkerSouth || m == table.DrinkerEast || m == table.DrinkerWest))
                {
                    targets.Add(m);
                }
            }
            for (int i = 0; i < targets.Count; ++i)
            {
                Mobile m = targets[i];
                m.Delete();
            }
        }
Example #24
0
        private static Skill ShopkeeperSkill(Mobile m)
        {
            try
            {
                Mobile tmp = new Mobile();
                Skill  sx  = new Skill(tmp.Skills, new SkillInfo(-1, "Shopkeeper", 0, 0, 0, "Shopkeeper", null, 0, 0, 0, 0), 100, 1200, SkillLock.Locked);
                sx.BaseFixedPoint = ComputeShopkeeperSkill(m);
                tmp.Delete();
                return(sx);
            }
            catch (Exception ex)
            {
                LogHelper.LogException(ex);
            }

            return(null);
        }
Example #25
0
        public override void OnDelete()
        {
            base.OnDelete();

            if (m_Spawn != null && m_Spawn.Count > 0)
            {
                for (int i = 0; i < this.m_Spawn.Count; i++)
                {
                    Mobile m = (Mobile)this.m_Spawn[i];
                    m.Delete();
                }
            }
            if (this.m_Entity != null)
            {
                this.m_Entity.Delete();
            }
        }
        public void DispelTarget(Mobile m)
        {
            Type t           = m.GetType();
            bool dispellable = false;

            if (m is BaseCreature)
            {
                dispellable = ((BaseCreature)m).Summoned;
            }

            if (m_Mobile.CanSee(m) && dispellable)
            {
                Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                Effects.PlaySound(m, m.Map, 0x201);

                m.Delete();
            }
        }
Example #27
0
        public PeerlessInstance(GenericReader reader)
        {
            m_Owner             = reader.ReadItem <PeerlessPlatform>();
            m_Light             = reader.ReadItem();
            m_Map               = reader.ReadMap();
            m_EntranceLocation  = reader.ReadPoint3D();
            m_BossSpawnLocation = reader.ReadPoint3D();
            m_RegionBounds      = reader.ReadRect2D();

            Mobile boss = reader.ReadMobile();

            if (boss != null)
            {
                boss.Delete();
            }

            Initialize();
        }
Example #28
0
        /// <summary>
        /// Deletes the account, all characters of the account, and all houses of those characters
        /// </summary>
        public void Delete()
        {
            for (int i = 0; i < this.Length; ++i)
            {
                Mobile m = this[i];

                if (m == null)
                {
                    continue;
                }

                ArrayList list = BaseHouse.GetHouses(m);

                for (int j = 0; j < list.Count; ++j)
                {
                    BaseHouse house = list[j] as BaseHouse;

                    ArrayList toDelete = new ArrayList();

                    foreach (Item item in World.Items)
                    {
                        if (HousingHelper.FindHouseAt(item) == house && !(item is BaseHouse))
                        {
                            toDelete.Add(item);
                        }
                    }

                    for (int k = 0; k < toDelete.Count; k++)
                    {
                        ((Item)toDelete[k]).Delete();
                    }

                    house.Delete();
                }

                m.Delete();

                m.Account    = null;
                m_Mobiles[i] = null;
            }

            Accounts.RemoveAccount(m_Username);
        }
Example #29
0
        public void Target( Mobile m )
        {
            Type t = m.GetType();
            bool dispellable = false;

            if ( m is BaseCreature )
                dispellable = ((BaseCreature)m).Summoned && !((BaseCreature)m).IsAnimatedDead;

            if ( !Caster.CanSee( m ) )
            {
                Caster.SendAsciiMessage( "Target can not be seen." );
            }
            else if ( !dispellable )
            {
                Caster.SendAsciiMessage( "That cannot be dispelled." );
            }
            else if ( CheckHSequence( m ) )
            {
                SpellHelper.Turn( Caster, m );

                BaseCreature bc = m as BaseCreature;

                double dispelChance = 0;

                if ( bc != null )
                    dispelChance = (50.0 + ((100 * (Caster.Skills.Magery.Value - bc.DispelDifficulty)) / (bc.DispelFocus*2))) / 100;

                if ( dispelChance > Utility.RandomDouble() )
                {
                    Effects.SendLocationParticles( EffectItem.Create( m.Location, m.Map, EffectItem.DefaultDuration ), 0x3728, 8, 20, 5042 );
                    Effects.PlaySound( m, m.Map, 0x201 );

                    m.Delete();
                }
                else
                {
                    m.FixedEffect( 0x3779, 10, 20 );
                    Caster.SendAsciiMessage( "The creature resisted the attempt to dispel it!" );
                }
            }

            FinishSequence();
        }
Example #30
0
        public static void RemoveOtherdecoration(Map map)
        {
            blocker.ToList().ForEach(x =>
            {
                Item b = map.FindItem <Blocker>(new Point3D(x));

                if (b != null)
                {
                    b.Delete();
                }

                Item lb = map.FindItem <LOSBlocker>(new Point3D(x));

                if (lb != null)
                {
                    lb.Delete();
                }
            });

            for (int i = 0; i < Workers.Length; i++)
            {
                Point3D p = Workers[i];

                Mobile w = map.FindMobile <Worker>(p);

                if (w != null)
                {
                    w.Delete();
                }
            }

            for (int t = 0; t < Teleporters.Length / 2; t++)
            {
                Point3D p = Teleporters[t, 0];

                Item tele = map.FindItem <BlackthornDungeonTeleporter>(p);

                if (tele != null)
                {
                    tele.Delete();
                }
            }
        }
Example #31
0
        public override void OnLocationChanged(Mobile m, Point3D oldLocation)
        {
            Timer.DelayCall(TimeSpan.FromSeconds(1.5), () =>
            {
                if (!IsInStartRegion(m.Location) && m is BaseCreature && !(m is DespiseCreature) && !(m is CorruptedWisp) && !(m is EnsorcledWisp) && (((BaseCreature)m).Controlled || ((BaseCreature)m).Summoned))
                {
                    if (((BaseCreature)m).Summoned)
                    {
                        m.Delete();
                    }
                    else
                    {
                        KickFromRegion(m, false);
                    }
                }
            });

            base.OnLocationChanged(m, oldLocation);
        }
        public static void CheckSummonLimits(BaseCreature creature)
        {
            ArrayList creatures = new ArrayList();

            int limit = 6;             // 6 creatures

            int range = 5;             // per 5x5 area

            IPooledEnumerable eable = creature.GetMobilesInRange(range);

            foreach (Mobile mobile in eable)
            {
                if (mobile != null && mobile.GetType() == creature.GetType())
                {
                    creatures.Add(mobile);
                }
            }

            int amount = 0;

            if (creatures.Count > limit)
            {
                amount = creatures.Count - limit;
            }

            while (amount > 0)
            {
                for (int i = 0; i < creatures.Count; i++)
                {
                    Mobile m = creatures[i] as Mobile;

                    if (m != null && ((BaseCreature)m).Summoned)
                    {
                        if (Utility.RandomBool() && amount > 0)
                        {
                            m.Delete();

                            amount--;
                        }
                    }
                }
            }
        }
        public override void OnDamagedBySpell(Mobile d)
        {
            if (0.3 >= Utility.RandomDouble())
            {
                this.Say("Tus brujerias no te ayudaran.");
            }

            if (d is BaseCreature)
            {
                if ((d as BaseCreature).IsDispellable)
                {
                    if (DateTime.Now >= m_NextCastTime)
                    {
                        this.Say("An Ort");
                        Effects.SendLocationParticles(EffectItem.Create(d.Location, d.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                        Effects.PlaySound(d, d.Map, 0x201);
                        m_NextCastTime = DateTime.Now + TimeSpan.FromSeconds(5.0);
                        if (this.Combatant == d)
                        {
                            this.Combatant = null;
                        }
                        d.Delete();
                    }
                }

                BaseCreature t = (BaseCreature)d;
                if (t.Controlled && !(t as BaseCreature).IsDispellable)
                {
                    if (0.5 >= Utility.RandomDouble())
                    {
                        t.Combatant = null;
                        t.Warmode   = false;
                        t.Pacify(this, DateTime.Now + TimeSpan.FromSeconds(20.0));

                        if (this.Combatant == t)
                        {
                            this.Provoke(this, t.ControlMaster, true);
                        }
                    }
                }
            }
        }
Example #34
0
            protected override void OnTarget(Mobile from, object o)
            {
                IEntity entity = o as IEntity; if (XmlScript.HasTrigger(entity, TriggerName.onTargeted) && UberScriptTriggers.Trigger(entity, from, TriggerName.onTargeted, null, null, m_Owner))

                {
                    return;
                }
                if (o is Mobile)
                {
                    Mobile       m  = (Mobile)o;
                    BaseCreature bc = m as BaseCreature;

                    if (!from.CanSee(m))
                    {
                        from.SendLocalizedMessage(500237);                           // Target can not be seen.
                    }
                    else if (bc == null || !bc.IsDispellable)
                    {
                        from.SendLocalizedMessage(1005049);                           // That cannot be dispelled.
                    }
                    else if (m_Owner.CheckHSequence(m))
                    {
                        m_Owner.Caster.DoHarmful(m);
                        SpellHelper.Turn(from, m);

                        double dispelChance = (50.0 + ((100 * (from.Skills.Magery.Value - bc.DispelDifficulty)) / (bc.DispelFocus * 2))) / 100;

                        if (dispelChance > Utility.RandomDouble())
                        {
                            Effects.SendLocationParticles(EffectItem.Create(m.Location, m.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                            Effects.PlaySound(m, m.Map, 0x201);

                            m.Delete();
                        }
                        else
                        {
                            m.FixedEffect(0x3779, 10, 20);
                            from.SendLocalizedMessage(1010084);                               // The creature resisted the attempt to dispel it!
                        }
                    }
                }
            }
Example #35
0
        public static void DeleteChar_WarningGumpCallback(Mobile from, bool okay, object state)
        {
            Mobile    mob      = (Mobile)state;
            NetState  ns       = mob.NetState;
            ArrayList pets     = new ArrayList();
            int       petCount = 0;

            if (!okay)
            {
                return;
            }
            CommandLogging.WriteLine(from, "{0} {1} deleting character {2}.", from.AccessLevel, CommandLogging.Format(from), CommandLogging.Format(mob));

            foreach (Mobile m in World.Mobiles.Values)
            {
                if (m is BaseCreature)
                {
                    BaseCreature bc = (BaseCreature)m;
                    if ((bc.Controlled && bc.ControlMaster == mob) || (bc.Summoned && bc.SummonMaster == mob))
                    {
                        petCount++;
                        pets.Add(bc);
                    }
                }
            }

            for (int i = 0; i < pets.Count; ++i)
            {
                Mobile pet = (Mobile)pets[i];
                pet.Delete();
            }

            from.SendMessage("{0} pet{1} deleted.", petCount, petCount != 1 ? "s" : "");
            //mob.Say( "I've been deleted!" );

            if (mob.NetState != null)
            {
                mob.NetState.Dispose();
            }
            mob.Delete();
            from.SendMessage("This character has been disposed of thoroughly.");
        }
        public static void DoDelete(Mobile from, Mobile target)
        {
            if (!(target is PlayerMobile))
                return;

            if (target.NetState != null)
            {
                from.SendAsciiMessage("The target character must be logged out!");
                return;
            }

            List<BaseHouse> houses = BaseHouse.GetHouses(target);

            for (int h = 0; h < houses.Count; ++h)
                houses[h].Delete();

            CommandLogging.WriteLine(from, "{0} {1} deleting {2} ({3})  from account {4} ", from.AccessLevel, CommandLogging.Format(from), target.Name, target.Serial, target.Account.Username);

            target.Delete();
        }
Example #37
0
		public virtual void Dispel( Mobile m )
		{
			Effects.SendLocationParticles( EffectItem.Create( m.Location, m.Map, EffectItem.DefaultDuration ), 0x3728, 8, 20, 5042 );
			Effects.PlaySound( m, m.Map, 0x201 );

			m.Delete();
		}
        public override void OnDamagedBySpell(Mobile d)
        {
            if (0.2 >= Utility.RandomDouble())
                this.Say("Ty tvoje trapná kouzla ti moc nepomùžou.");

            if (d is BaseCreature)
            {
                if ((d as BaseCreature).IsDispellable)
                {
                    if (DateTime.Now >= m_NextCastTime)
                    {
                        this.Say("An Ort");
                        Effects.SendLocationParticles(EffectItem.Create(d.Location, d.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
                        Effects.PlaySound(d, d.Map, 0x201);
                        m_NextCastTime = DateTime.Now + TimeSpan.FromSeconds(5.0);
                        if (this.Combatant == d)
                            this.Combatant = null;
                        d.Delete();
                    }
                }

                BaseCreature t = (BaseCreature)d;
                if (t.Controlled && !(t as BaseCreature).IsDispellable)
                {
                    if (0.5 >= Utility.RandomDouble())
                    {
                        t.Combatant = null;
                        t.Warmode = false;
                        t.Pacify(this, DateTime.Now + TimeSpan.FromSeconds(20.0));

                        if (this.Combatant == t)
                        {
                            this.Provoke(this, t.ControlMaster, true);
                        }
                    }
                }
            }
        }
Example #39
0
 public static void DeleteTwin(Mobile m_Twin)
 {
     if (TrickOrTreat.CheckMobile(m_Twin))
     {
         m_Twin.Delete();
     }
 }
		public virtual void DoDispel(Mobile attacker, Mobile defender)
		{
			bool dispellable = false;

			if (defender is BaseCreature)
			{
				dispellable = ((BaseCreature)defender).Summoned && !((BaseCreature)defender).IsAnimatedDead;
			}

			if (!dispellable)
			{
				return;
			}

			if (!attacker.CanBeHarmful(defender, false))
			{
				return;
			}

			attacker.DoHarmful(defender);

			MagerySpell sp = new DispelSpell(attacker, null);

			if (sp.CheckResisted(defender))
			{
				defender.FixedEffect(0x3779, 10, 20);
			}
			else
			{
				Effects.SendLocationParticles(
					EffectItem.Create(defender.Location, defender.Map, EffectItem.DefaultDuration), 0x3728, 8, 20, 5042);
				Effects.PlaySound(defender, defender.Map, 0x201);

				defender.Delete();
			}
		}
Example #41
0
		public void RemovePlayer( Mobile m )
		{
			
			if ( m_Team1List.Contains(m) )
			{
				m_Team1List.Remove(m);
				if ( m is PBNpc )
				{
					NpcPlayers.Remove(m);
					m.Delete();
				}
				else
				{
					m.MoveToWorld( Exit1Dest, MapDest );
				}
			}
			else if ( m_Team2List.Contains(m) )
			{
				m_Team2List.Remove(m);
				if ( m is PBNpc )
				{
					NpcPlayers.Remove(m);
					m.Delete();
				}
				else
				{
					m.MoveToWorld( Exit2Dest, MapDest );
				}
			}
			else if ( m_Team3List.Contains(m) )
			{
				m_Team3List.Remove(m);
				if ( m is PBNpc )
				{
					NpcPlayers.Remove(m);
					m.Delete();
				}
				else
				{
					m.MoveToWorld( Exit3Dest, MapDest );
				}			
			}
			else if ( m_Team4List.Contains(m) )
			{
				m_Team4List.Remove(m);
				if ( m is PBNpc )
				{
					NpcPlayers.Remove(m);
					m.Delete();
				}
				else
				{
					m.MoveToWorld( Exit4Dest, MapDest );
				}
			}
			else
			{
				
			}
			UpdateTeams();
		}