public void SpawnCreature( Mobile target ) { Map map = this.Map; if ( map == null ) return; int monsters = 0; foreach ( Mobile m in this.GetMobilesInRange( 4 ) ) { if ( m is BoneKnight || m is SkeletalWarrior || m is Skeleton || m is SkeletalKnight ) ++monsters; } if ( monsters < 6 ) { PlaySound( 0x216 ); int newmonsters = Utility.RandomMinMax( 1, 3 ); for ( int i = 0; i < newmonsters; ++i ) { BaseCreature monster; switch ( Utility.Random( 7 ) ) { default: case 0: monster = new BoneKnight(); break; case 1: monster = new SkeletalWarrior(); break; case 2: monster = new SkeletalKnight(); break; case 3: monster = new SkeletalKnight(); break; case 4: monster = new Skeleton(); break; case 5: monster = new Skeleton(); break; case 6: monster = new Skeleton(); break; } monster.Team = this.Team; bool validLocation = false; Point3D loc = this.Location; for ( int j = 0; !validLocation && j < 10; ++j ) { int x = X + Utility.Random( 3 ) - 1; int y = Y + Utility.Random( 3 ) - 1; int z = map.GetAverageZ( x, y ); if ( validLocation = map.CanFit( x, y, this.Z, 16, false, false ) ) loc = new Point3D( x, y, Z ); else if ( validLocation = map.CanFit( x, y, z, 16, false, false ) ) loc = new Point3D( x, y, z ); } monster.ControlSlots = 666; // WIZARD ADDED FOR MONSTER CLEANUP monster.MoveToWorld( loc, map ); monster.Combatant = target; } } }
public override void OnDamagedBySpell(Mobile caster) { if (Map != null && caster != this && 0.10 > Utility.RandomDouble()) { Map map = Map; if (map == null) return; BaseCreature spawn = new Skeleton(); spawn.Team = Team; bool validLocation = false; Point3D loc = Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = X + Utility.Random(2) - 1; int y = Y + Utility.Random(2) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, Z, 16, false, false)) loc = new Point3D(x, y, Z); else if (validLocation = map.CanFit(x, y, z, 16, false, false)) loc = new Point3D(x, y, z); } spawn.MoveToWorld(loc, map); Effects.SendLocationEffect(loc, map, 0x3709, 30); spawn.Combatant = caster; Say("You cannot defeat me!"); } base.OnDamagedBySpell(caster); }
public static void CheckSummon(Mobile from) { if (Utility.RandomDouble() > 0.90) { Skeleton skel; for (int i = 0; i < 5; i++) { skel = new Skeleton(); new Server.Spells.UnsummonTimer(from, skel, TimeSpan.FromMinutes(5)).Start(); skel.MoveToWorld(new Point3D( from.X + Utility.RandomMinMax(-1, 1), from.Y + Utility.RandomMinMax(-1, 1), from.Z), from.Map ); } if (from.Hits < (from.Hits / 2)) { from.BodyMod = 50; from.HueMod = 0; from.NameMod = "a skeleton"; } } }
public void SpawnVampireBats(Mobile target) { Map map = this.Map; if (map == null) { return; } if (Skeletons == null) { Skeletons = new ArrayList(); } int newVampireBats = Utility.RandomMinMax(4, 8); for (int i = 0; i < newVampireBats; ++i) { Skeleton vampirebat = new Skeleton(); Skeletons.Add(vampirebat); vampirebat.Team = this.Team; vampirebat.FightMode = FightMode.Closest; bool validLocation = false; Point3D loc = this.Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = X + Utility.Random(3) - 1; int y = Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, this.Z, 16, false, false)) { loc = new Point3D(x, y, Z); } else if (validLocation = map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } Effects.SendLocationParticles(EffectItem.Create(loc, map, EffectItem.DefaultDuration), 0x3728, 10, 10, 5023); vampirebat.MoveToWorld(loc, map); vampirebat.Combatant = target; } }
public override void OnDamagedBySpell(Mobile caster) { if (Map != null && caster != this && 0.10 > Utility.RandomDouble()) { Map map = Map; if (map == null) { return; } BaseCreature spawn = new Skeleton(); spawn.Team = Team; bool validLocation = false; Point3D loc = Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = X + Utility.Random(2) - 1; int y = Y + Utility.Random(2) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, Z, 16, false, false)) { loc = new Point3D(x, y, Z); } else if (validLocation = map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } spawn.MoveToWorld(loc, map); Effects.SendLocationEffect(loc, map, 0x3709, 30); spawn.Combatant = caster; Say("You cannot defeat me!"); } base.OnDamagedBySpell(caster); }
public void SpawnVampireBats( Mobile target ) { Map map = this.Map; if ( map == null ) return; if ( Skeletons == null ) Skeletons = new ArrayList(); int newVampireBats = Utility.RandomMinMax( 4, 8 ); for ( int i = 0; i < newVampireBats; ++i ) { Skeleton vampirebat = new Skeleton(); Skeletons.Add(vampirebat); vampirebat.Team = this.Team; vampirebat.FightMode = FightMode.Closest; bool validLocation = false; Point3D loc = this.Location; for ( int j = 0; !validLocation && j < 10; ++j ) { int x = X + Utility.Random( 3 ) - 1; int y = Y + Utility.Random( 3 ) - 1; int z = map.GetAverageZ( x, y ); if ( validLocation = map.CanFit( x, y, this.Z, 16, false, false ) ) loc = new Point3D( x, y, Z ); else if ( validLocation = map.CanFit( x, y, z, 16, false, false ) ) loc = new Point3D( x, y, z ); } Effects.SendLocationParticles( EffectItem.Create( loc, map, EffectItem.DefaultDuration ), 0x3728, 10, 10, 5023 ); vampirebat.MoveToWorld( loc, map ); vampirebat.Combatant = target; } }
/////////////////////// public void SpawnSkeleton(Mobile target) { Map map = this.Map; if (map == null) { return; } int skeletons = 0; foreach (Mobile m in this.GetMobilesInRange(30)) { if (m is Skeleton) { ++skeletons; } } if (skeletons < 3) { PlaySound(0x3D); int newSkeletons = Utility.RandomMinMax(1, 2); for (int i = 0; i < newSkeletons; ++i) { BaseCreature skeleton; switch (Utility.Random(5)) { default: case 0: case 1: skeleton = new Skeleton(); break; case 2: case 3: skeleton = new Skeleton(); break; case 4: skeleton = new Skeleton(); break; } skeleton.Team = this.Team; bool validLocation = false; Point3D loc = this.Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = X + Utility.Random(3) - 1; int y = Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, this.Z, 16, false, false)) { loc = new Point3D(x, y, Z); } else if (validLocation = map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } skeleton.MoveToWorld(loc, map); skeleton.Combatant = target; } } }
public void SpawnSkeletons( Mobile target ) { Map map = this.Map; if ( map == null ) return; int newSkeletons = Utility.RandomMinMax( 2, 3 ); for ( int i = 0; i < newSkeletons; ++i ) { Skeleton skeleton = new Skeleton(); skeleton.Team = this.Team; skeleton.FightMode = FightMode.Closest; bool validLocation = false; Point3D loc = this.Location; for ( int j = 0; !validLocation && j < 10; ++j ) { int x = X + Utility.Random( 3 ) - 1; int y = Y + Utility.Random( 3 ) - 1; int z = map.GetAverageZ( x, y ); if ( validLocation = map.CanFit( x, y, this.Z, 16, false, false ) ) loc = new Point3D( x, y, Z ); else if ( validLocation = map.CanFit( x, y, z, 16, false, false ) ) loc = new Point3D( x, y, z ); } skeleton.MoveToWorld( loc, map ); skeleton.Combatant = target; skeleton.VanishTime = DateTime.Now + TimeSpan.FromHours( 1 ); skeleton.VanishEmote = "*crumbles into dust*"; this.PlaySound( 1109 ); } int newZombies = Utility.RandomMinMax( 2, 3 ); for ( int i = 0; i < newZombies; ++i ) { Zombie zombie = new Zombie(); zombie.Team = this.Team; zombie.FightMode = FightMode.Closest; bool validLocation = false; Point3D loc = this.Location; for ( int j = 0; !validLocation && j < 10; ++j ) { int x = X + Utility.Random( 3 ) - 1; int y = Y + Utility.Random( 3 ) - 1; int z = map.GetAverageZ( x, y ); if ( validLocation = map.CanFit( x, y, this.Z, 16, false, false ) ) loc = new Point3D( x, y, Z ); else if ( validLocation = map.CanFit( x, y, z, 16, false, false ) ) loc = new Point3D( x, y, z ); } zombie.MoveToWorld( loc, map ); zombie.Combatant = target; this.PlaySound( 1109 ); } this.Emote( "*freshly created undead burst forth from the sickening chasm of his mouth*" ); }
/////////////////////// public void SpawnSkeleton( Mobile target ) { Map map = this.Map; if ( map == null ) return; int skeletons = 0; foreach ( Mobile m in this.GetMobilesInRange( 30 ) ) { if ( m is Skeleton ) ++skeletons; } if ( skeletons < 3 ) { PlaySound( 0x3D ); int newSkeletons = Utility.RandomMinMax( 1, 2 ); for ( int i = 0; i < newSkeletons; ++i ) { BaseCreature skeleton; switch ( Utility.Random( 5 ) ) { default: case 0: case 1: skeleton = new Skeleton(); break; case 2: case 3: skeleton = new Skeleton(); break; case 4: skeleton = new Skeleton(); break; } skeleton.Team = this.Team; bool validLocation = false; Point3D loc = this.Location; for ( int j = 0; !validLocation && j < 10; ++j ) { int x = X + Utility.Random( 3 ) - 1; int y = Y + Utility.Random( 3 ) - 1; int z = map.GetAverageZ( x, y ); if ( validLocation = map.CanFit( x, y, this.Z, 16, false, false ) ) loc = new Point3D( x, y, Z ); else if ( validLocation = map.CanFit( x, y, z, 16, false, false ) ) loc = new Point3D( x, y, z ); } skeleton.MoveToWorld( loc, map ); skeleton.Combatant = target; } } }
public static void CheckSummon( Mobile from ) { if ( Utility.RandomDouble() > 0.90 ) { Skeleton skel; for ( int i = 0; i < 5; i++ ) { skel = new Skeleton(); new Server.Spells.UnsummonTimer( from, skel, TimeSpan.FromMinutes( 5 ) ).Start(); skel.MoveToWorld( new Point3D( from.X + Utility.RandomMinMax( -1, 1 ), from.Y + Utility.RandomMinMax( -1, 1 ), from.Z ), from.Map ); } if ( from.Hits < (from.Hits/2) ) { from.BodyMod = 50; from.HueMod = 0; from.NameMod = "a skeleton"; } } }