public void SpawnRatmen(Mobile target) { Map map = this.Map; if (map == null) return; int rats = 0; IPooledEnumerable eable = this.GetMobilesInRange(10); foreach (Mobile m in eable) { if (m is Ratman || m is RatmanArcher || m is RatmanMage) ++rats; } eable.Free(); if (rats < 16) { int newRats = Utility.RandomMinMax(3, 6); try { for (int i = 0; i < newRats; ++i) { BaseCreature rat; switch (Utility.Random(5)) { default: case 0: case 1: rat = new Ratman(); break; case 2: case 3: rat = new RatmanArcher(); break; case 4: rat = new RatmanMage(); break; } rat.Team = this.Team; bool validLocation = false; Point3D loc = this.Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = target.X + Utility.Random(3) - 1; int y = target.Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, target.Z, 16, CanFitFlags.requireSurface)) loc = new Point3D(x, y, Z); else if (validLocation = map.CanFit(x, y, z, 16, CanFitFlags.requireSurface)) loc = new Point3D(x, y, z); } rat.MoveToWorld(loc, map); rat.Combatant = target; } } catch (Exception e) { LogHelper.LogException(e); Console.WriteLine("Exception (non-fatal) caught at Barracoon.Damage: " + e.Message); } } }
public void SpawnRatmen(Mobile target) { Map map = this.Map; if (map == null) { return; } int rats = 0; foreach (Mobile m in this.GetMobilesInRange(10)) { if (m is Ratman || m is RatmanArcher || m is RatmanMage) { ++rats; } } if (rats < 16) { PlaySound(0x3D); int newRats = Utility.RandomMinMax(3, 6); for (int i = 0; i < newRats; ++i) { BaseCreature rat; switch (Utility.Random(5)) { default: case 0: case 1: rat = new Ratman(); break; case 2: case 3: rat = new RatmanArcher(); break; case 4: rat = new RatmanMage(); break; } rat.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); } } rat.MoveToWorld(loc, map); rat.Combatant = target; } } }
public void SpawnRatmen(Mobile target) { Map map = this.Map; if (map == null) { return; } int rats = 0; IPooledEnumerable eable = this.GetMobilesInRange(10); foreach (Mobile m in eable) { if (m is Ratman || m is RatmanArcher || m is RatmanMage) { ++rats; } } eable.Free(); if (rats < 16) { int newRats = Utility.RandomMinMax(3, 6); try { for (int i = 0; i < newRats; ++i) { BaseCreature rat; switch (Utility.Random(5)) { default: case 0: case 1: rat = new Ratman(); break; case 2: case 3: rat = new RatmanArcher(); break; case 4: rat = new RatmanMage(); break; } rat.Team = this.Team; bool validLocation = false; Point3D loc = this.Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = target.X + Utility.Random(3) - 1; int y = target.Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, target.Z, 16, CanFitFlags.requireSurface)) { loc = new Point3D(x, y, Z); } else if (validLocation = map.CanFit(x, y, z, 16, CanFitFlags.requireSurface)) { loc = new Point3D(x, y, z); } } rat.MoveToWorld(loc, map); rat.Combatant = target; } } catch (Exception e) { LogHelper.LogException(e); Console.WriteLine("Exception (non-fatal) caught at Barracoon.Damage: " + e.Message); } } }
public void SpawnRatmen(Mobile target) { Map map = Map; if (map == null) { return; } int rats = GetMobilesInRange(10).Cast<Mobile>().Count(m => m is Ratman || m is RatmanArcher || m is RatmanMage); if (rats < 6) { PlaySound(0x3D); int newRats = Utility.RandomMinMax(3, 5); for (int i = 0; i < newRats; ++i) { BaseCreature rat; switch (Utility.Random(5)) { default: case 0: case 1: rat = new Ratman(); break; case 2: case 3: rat = new RatmanArcher(); break; case 4: rat = new RatmanMage(); break; } rat.Team = Team; Point3D loc = Location; for (int j = 0; j < 10; ++j) { int x = X + Utility.Random(3) - 1; int y = Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (false == map.CanFit(x, y, Z, 16, false, false)) { loc = new Point3D(x, y, Z); } else if (false == map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } rat.MoveToWorld(loc, map); // take away insta kill //rat.Combatant = target; } } }
public void SpawnRatmen( Mobile target ) { Map map = this.Map; if ( map == null ) return; int rats = 0; foreach ( Mobile m in this.GetMobilesInRange( 10 ) ) { if ( m is Ratman || m is RatmanArcher || m is RatmanMage ) ++rats; } if ( rats < 16 ) { PlaySound( 0x3D ); int newRats = Utility.RandomMinMax( 3, 6 ); for ( int i = 0; i < newRats; ++i ) { BaseCreature rat; switch ( Utility.Random( 5 ) ) { default: case 0: case 1: rat = new Ratman(); break; case 2: case 3: rat = new RatmanArcher(); break; case 4: rat = new RatmanMage(); break; } rat.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 ); } rat.MoveToWorld( loc, map ); rat.Combatant = target; } } }
public virtual void SpawnEnemies( RVS Handeling, String RegionName, int amount) { int numberOfEnemies = amount; int kindOfEnemy = 0; int randomEnemy = 0; Mobile Enemy = null; //Mobile Enemy = new Sheep(); int randomValueX = 0; int randomValueY = 0; int negative = 0; Point3D spawn; Map spawnmap; if ( RegionName == "Sheep" ) { spawn = SheepSpawnPoint; spawnmap = SheepSpawnMap; kindOfEnemy = 0; } else if ( RegionName == "Rabbit" ) { spawn = RabbitSpawnPoint; spawnmap = RabbitSpawnMap; kindOfEnemy = 1; } else { spawn = SheepSpawnPoint; spawnmap = SheepSpawnMap; kindOfEnemy = 0; } for ( int i = 0; i < numberOfEnemies; i++ ) { //kindOfEnemy = Utility.Random( 5 ); randomValueX = Utility.Random( 11 ); negative = Utility.Random( 2 ); if ( negative > 0 ) randomValueX *= -1; negative = Utility.Random( 2 ); randomValueY = Utility.Random( 11 ); if ( negative > 0 ) randomValueY *= -1; if ( Handeling.RvS ) { switch ( kindOfEnemy ) { case 0: { Enemy = new Sheep(); break; } case 1: { Enemy = new Rabbit(); break; } } } else if ( Handeling.Orcs ) { kindOfEnemy = 0; randomEnemy = Utility.Random( 100 ); if ( randomEnemy <= 20 ) kindOfEnemy++; if ( randomEnemy <= 10 ) kindOfEnemy++; if ( randomEnemy <= 5 ) kindOfEnemy++; switch ( kindOfEnemy ) { case 0: { Enemy = new Orc(); break; } case 1: { Enemy = new OrcishLord(); break; } case 2: { Enemy = new Ettin(); break; } case 3: { Enemy = new OrcishMage(); break; } } } else if ( Handeling.Lizardmen ) { kindOfEnemy = 0; randomEnemy = Utility.Random( 100 ); if ( randomEnemy <= 20 ) kindOfEnemy++; if ( randomEnemy <= 10 ) kindOfEnemy++; if ( randomEnemy <= 5 ) kindOfEnemy++; switch ( kindOfEnemy ) { case 0: { Enemy = new Snake(); break; } case 1: { Enemy = new GiantSerpent(); break; } case 2: { Enemy = new Lizardman(); break; } case 3: { Enemy = new Drake(); break; } } } else if ( Handeling.Ratmen ) { kindOfEnemy = 0; randomEnemy = Utility.Random( 100 ); if ( randomEnemy <= 20 ) kindOfEnemy++; if ( randomEnemy <= 15 ) kindOfEnemy++; if ( randomEnemy <= 10 ) kindOfEnemy++; if ( randomEnemy <= 5 ) kindOfEnemy++; switch ( kindOfEnemy ) { case 0: { Enemy = new Sewerrat(); break; } case 1: { Enemy = new GiantRat(); break; } case 2: { Enemy = new Ratman(); break; } case 3: { Enemy = new RatmanMage(); break; } case 4: { Enemy = new RatmanArcher(); break; } } } else if ( Handeling.Undead ) { kindOfEnemy = 0; randomEnemy = Utility.Random( 100 ); if ( randomEnemy <= 50 ) kindOfEnemy++; if ( randomEnemy <= 40 ) kindOfEnemy++; if ( randomEnemy <= 30 ) kindOfEnemy++; if ( randomEnemy <= 20 ) kindOfEnemy++; if ( randomEnemy <= 10 ) kindOfEnemy++; if ( randomEnemy <= 5 ) kindOfEnemy++; switch ( kindOfEnemy ) { case 0: { Enemy = new Skeleton(); break; } case 1: { Enemy = new Zombie(); break; } case 2: { Enemy = new RestlessSoul(); break; } case 3: { Enemy = new SkeletalMage(); break; } case 4: { Enemy = new SkeletalKnight(); break; } case 5: { Enemy = new Mummy(); break; } case 6: { Enemy = new Lich(); break; } } } Enemy.Map = spawnmap; Enemy.Location = new Point3D((spawn.X + randomValueX), (spawn.Y + randomValueY), (spawn.Z)); Enemies.Add(Enemy); } }
public void SpawnRatmen(Mobile target) { Map map = Map; if (map == null) { return; } int rats = GetMobilesInRange(10).Cast <Mobile>().Count(m => m is Ratman || m is RatmanArcher || m is RatmanMage); if (rats < 6) { PlaySound(0x3D); int newRats = Utility.RandomMinMax(3, 5); for (int i = 0; i < newRats; ++i) { BaseCreature rat; switch (Utility.Random(5)) { default: case 0: case 1: rat = new Ratman(); break; case 2: case 3: rat = new RatmanArcher(); break; case 4: rat = new RatmanMage(); break; } rat.Team = Team; Point3D loc = Location; for (int j = 0; j < 10; ++j) { int x = X + Utility.Random(3) - 1; int y = Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (false == map.CanFit(x, y, Z, 16, false, false)) { loc = new Point3D(x, y, Z); } else if (false == map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } rat.MoveToWorld(loc, map); // take away insta kill //rat.Combatant = target; } } }