Add DefaultName property to Mobiles & Items (#18)

This commit is contained in:
Kamron Batman 2018-08-09 17:18:41 -07:00 committed by GitHub
parent b06f5bf60d
commit 8ee42c8ea2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
713 changed files with 5112 additions and 4987 deletions

View file

@ -64,7 +64,7 @@ namespace Server
LoadTable();
SpeedInfo sp = null;
m_Table.TryGetValue(obj.GetType(), out sp);
if ( sp == null )
@ -104,7 +104,7 @@ namespace Server
typeof( HeadlessOne ), typeof( Jwilson ), typeof( Mummy ),
typeof( Ogre ), typeof( OgreLord ), typeof( PlagueBeast ),
typeof( Quagmire ), typeof( Rat ), typeof( RottingCorpse ),
typeof( Sewerrat ), typeof( Skeleton ), typeof( Slime ),
typeof( SewerRat ), typeof( Skeleton ), typeof( Slime ),
typeof( Zombie ), typeof( Walrus ), typeof( RestlessSoul ),
typeof( CrystalElemental ), typeof( DarknightCreeper ), typeof( MoundOfMaggots ),
typeof( Juggernaut ), typeof( Yamandon ), typeof( Serado )
@ -225,4 +225,4 @@ namespace Server
} )
};
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Bear" )]
public class BlackBear : BaseCreature
{
public override string DefaultName => "a black bear";
[Constructible]
public BlackBear() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a black bear";
Body = 211;
BaseSoundID = 0xA3;
@ -66,4 +67,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a bear corpse" )]
public class BrownBear : BaseCreature
{
public override string DefaultName => "a brown bear";
[Constructible]
public BrownBear() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a brown bear";
Body = 167;
BaseSoundID = 0xA3;
@ -65,4 +66,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Grizzlybear" )]
public class GrizzlyBear : BaseCreature
{
public override string DefaultName => "a grizzly bear";
[Constructible]
public GrizzlyBear() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a grizzly bear";
Body = 212;
BaseSoundID = 0xA3;
@ -67,4 +68,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Polarbear" )]
public class PolarBear : BaseCreature
{
public override string DefaultName => "a polar bear";
[Constructible]
public PolarBear() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a polar bear";
Body = 213;
BaseSoundID = 0xA3;
@ -67,4 +68,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a chicken corpse" )]
public class Chicken : BaseCreature
{
public override string DefaultName => "a chicken";
[Constructible]
public Chicken() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a chicken";
Body = 0xD0;
BaseSoundID = 0x6E;
@ -43,7 +44,7 @@ namespace Server.Mobiles
public override int Meat{ get{ return 1; } }
public override MeatType MeatType{ get{ return MeatType.Bird; } }
public override FoodType FavoriteFood{ get{ return FoodType.GrainsAndHay; } }
public override bool CanFly { get { return true; } }
public override bool CanFly => true;
public override int Feathers{ get{ return 25; } }
@ -65,4 +66,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -3,13 +3,14 @@ using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a crane corpse" )]
[CorpseName( "a bird corpse" )]
public class Crane : BaseCreature
{
public override string DefaultName => "a crane";
[Constructible]
public Crane() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a crane";
Body = 254;
BaseSoundID = 0x4D7;
@ -83,4 +84,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -4,13 +4,14 @@ using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "an eagle corpse" )]
[CorpseName( "a bird corpse" )]
public class Eagle : BaseCreature
{
public override string DefaultName => "an eagle";
[Constructible]
public Eagle() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "an eagle";
Body = 5;
BaseSoundID = 0x2EE;
@ -49,7 +50,7 @@ namespace Server.Mobiles
public override MeatType MeatType{ get{ return MeatType.Bird; } }
public override int Feathers{ get{ return 36; } }
public override FoodType FavoriteFood{ get{ return FoodType.Meat | FoodType.Fish; } }
public override bool CanFly { get { return true; } }
public override bool CanFly => true;
public Eagle(Serial serial) : base(serial)
{
@ -69,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a phoenix corpse" )]
public class Phoenix : BaseCreature
{
public override string DefaultName => "a phoenix";
[Constructible]
public Phoenix() : base( AIType.AI_Mage, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a phoenix";
Body = 5;
Hue = 0x674;
BaseSoundID = 0x8F;
@ -53,7 +54,7 @@ namespace Server.Mobiles
public override int Meat{ get{ return 1; } }
public override MeatType MeatType{ get{ return MeatType.Bird; } }
public override int Feathers{ get{ return 36; } }
public override bool CanFly { get { return true; } }
public override bool CanFly => true;
public Phoenix( Serial serial ) : base( serial )
{
@ -71,4 +72,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Direwolf" )]
public class DireWolf : BaseCreature
{
public override string DefaultName => "a dire wolf";
[Constructible]
public DireWolf() : base( AIType.AI_Melee,FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a dire wolf";
Body = 23;
BaseSoundID = 0xE5;
@ -69,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Greywolf" )]
public class GreyWolf : BaseCreature
{
public override string DefaultName => "a grey wolf";
[Constructible]
public GreyWolf() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a grey wolf";
Body = Utility.RandomList( 25, 27 );
BaseSoundID = 0xE5;
@ -68,4 +69,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Timberwolf" )]
public class TimberWolf : BaseCreature
{
public override string DefaultName => "a timber wolf";
[Constructible]
public TimberWolf() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a timber wolf";
Body = 225;
BaseSoundID = 0xE5;
@ -68,4 +69,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Whitewolf" )]
public class WhiteWolf : BaseCreature
{
public override string DefaultName => "a white wolf";
[Constructible]
public WhiteWolf() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a white wolf";
Body = Utility.RandomList( 34, 37 );
BaseSoundID = 0xE5;
@ -68,4 +69,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a bull corpse" )]
public class Bull : BaseCreature
{
public override string DefaultName => "a bull";
[Constructible]
public Bull() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a bull";
Body = Utility.RandomList( 0xE8, 0xE9 );
BaseSoundID = 0x64;
@ -67,4 +68,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -24,10 +24,11 @@ namespace Server.Mobiles
set { m_Milk = value; }
}
public override string DefaultName => "a cow";
[Constructible]
public Cow() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a cow";
Body = Utility.RandomList( 0xD8, 0xE7 );
BaseSoundID = 0x78;
@ -136,4 +137,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a cougar corpse" )]
public class Cougar : BaseCreature
{
public override string DefaultName => "a cougar";
[Constructible]
public Cougar() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a cougar";
Body = 63;
BaseSoundID = 0x73;
@ -66,4 +67,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -8,10 +8,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Hellcat" )]
public class HellCat : BaseCreature
{
public override string DefaultName => "a hell cat";
[Constructible]
public HellCat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a hell cat";
Body = 0xC9;
Hue = Utility.RandomList( 0x647, 0x650, 0x659, 0x662, 0x66B, 0x674);
BaseSoundID = 0x69;
@ -50,7 +51,7 @@ namespace Server.Mobiles
AddLoot( LootPack.Meager );
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override bool HasBreath => true; // fire breath enabled
public override int Hides{ get{ return 10; } }
public override HideType HideType{ get{ return HideType.Spined; } }
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
@ -74,4 +75,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a panther corpse" )]
public class Panther : BaseCreature
{
public override string DefaultName => "a panther";
[Constructible]
public Panther() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a panther";
Body = 0xD6;
Hue = 0x901;
BaseSoundID = 0x462;
@ -67,4 +68,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Preditorhellcat" )]
public class PredatorHellCat : BaseCreature
{
public override string DefaultName => "a hell cat";
[Constructible]
public PredatorHellCat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a hell cat";
Body = 127;
BaseSoundID = 0xBA;
@ -48,7 +49,7 @@ namespace Server.Mobiles
AddLoot( LootPack.Average );
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override bool HasBreath => true; // fire breath enabled
public override int Hides{ get{ return 10; } }
public override HideType HideType{ get{ return HideType.Spined; } }
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
@ -72,4 +73,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Snowleopard" )]
public class SnowLeopard : BaseCreature
{
public override string DefaultName => "a snow leopard";
[Constructible]
public SnowLeopard() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a snow leopard";
Body = Utility.RandomList( 64, 65 );
BaseSoundID = 0x73;
@ -68,4 +69,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a pig corpse" )]
public class Boar : BaseCreature
{
public override string DefaultName => "a boar";
[Constructible]
public Boar() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a boar";
Body = 0x122;
BaseSoundID = 0xC4;
@ -63,4 +64,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Bullfrog" )]
public class BullFrog : BaseCreature
{
public override string DefaultName => "a bull frog";
[Constructible]
public BullFrog() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a bull frog";
Body = 81;
Hue = Utility.RandomList( 0x5AC,0x5A3,0x59A,0x591,0x588,0x57F );
BaseSoundID = 0x266;
@ -69,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,11 +6,12 @@ namespace Server.Mobiles
[CorpseName( "a dolphin corpse" )]
public class Dolphin : BaseCreature
{
public override string DefaultName => "a dolphin";
[Constructible]
public Dolphin()
: base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a dolphin";
Body = 0x97;
BaseSoundID = 0x8A;
@ -85,4 +86,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a gaman corpse" )]
public class Gaman : BaseCreature
{
public override string DefaultName => "a gaman";
[Constructible]
public Gaman() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a gaman";
Body = 248;
SetStr( 146, 175 );

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Gianttoad" )]
public class GiantToad : BaseCreature
{
public override string DefaultName => "a giant toad";
[Constructible]
public GiantToad() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a giant toad";
Body = 80;
BaseSoundID = 0x26B;
@ -75,4 +76,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a goat corpse" )]
public class Goat : BaseCreature
{
public override string DefaultName => "a goat";
[Constructible]
public Goat() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a goat";
Body = 0xD1;
BaseSoundID = 0x99;
@ -62,4 +63,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a gorilla corpse" )]
public class Gorilla : BaseCreature
{
public override string DefaultName => "a gorilla";
[Constructible]
public Gorilla() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a gorilla";
Body = 0x1D;
BaseSoundID = 0x9E;
@ -64,4 +65,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Greathart" )]
public class GreatHart : BaseCreature
{
public override string DefaultName => "a great hart";
[Constructible]
public GreatHart() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a great hart";
Body = 0xEA;
SetStr( 41, 71 );
@ -49,20 +50,20 @@ namespace Server.Mobiles
{
}
public override int GetAttackSound()
{
return 0x82;
}
public override int GetAttackSound()
{
return 0x82;
}
public override int GetHurtSound()
{
return 0x83;
}
public override int GetHurtSound()
{
return 0x83;
}
public override int GetDeathSound()
{
return 0x84;
}
public override int GetDeathSound()
{
return 0x84;
}
public override void Serialize(GenericWriter writer)
{
@ -78,4 +79,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a deer corpse" )]
public class Hind : BaseCreature
{
public override string DefaultName => "a hind";
[Constructible]
public Hind() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a hind";
Body = 0xED;
SetStr( 21, 51 );
@ -48,20 +49,20 @@ namespace Server.Mobiles
{
}
public override int GetAttackSound()
{
return 0x82;
}
public override int GetAttackSound()
{
return 0x82;
}
public override int GetHurtSound()
{
return 0x83;
}
public override int GetHurtSound()
{
return 0x83;
}
public override int GetDeathSound()
{
return 0x84;
}
public override int GetDeathSound()
{
return 0x84;
}
public override void Serialize(GenericWriter writer)
{
@ -77,4 +78,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a llama corpse" )]
public class Llama : BaseCreature
{
public override string DefaultName => "a llama";
[Constructible]
public Llama() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a llama";
Body = 0xDC;
BaseSoundID = 0x3F3;
@ -62,4 +63,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a mountain goat corpse" )]
public class MountainGoat : BaseCreature
{
public override string DefaultName => "a mountain goat";
[Constructible]
public MountainGoat() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a mountain goat";
Body = 88;
BaseSoundID = 0x99;
@ -66,4 +67,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -10,10 +10,11 @@ namespace Server.Mobiles
[CorpseName( "a horse corpse" )]
public class PackHorse : BaseCreature
{
public override string DefaultName => "a pack horse";
[Constructible]
public PackHorse() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a pack horse";
Body = 291;
BaseSoundID = 0xA8;
@ -219,4 +220,4 @@ namespace Server.Mobiles
from.Use( item );
}
}
}
}

View file

@ -9,10 +9,11 @@ namespace Server.Mobiles
[CorpseName("a llama corpse")]
public class PackLlama : BaseCreature
{
public override string DefaultName => "a pack llama";
[Constructible]
public PackLlama() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a pack llama";
Body = 292;
BaseSoundID = 0x3F3;
@ -140,4 +141,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a pig corpse" )]
public class Pig : BaseCreature
{
public override string DefaultName => "a pig";
[Constructible]
public Pig() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a pig";
Body = 0xCB;
BaseSoundID = 0xC4;
@ -61,4 +62,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -39,10 +39,11 @@ namespace Server.Mobiles
Body = ( DateTime.UtcNow >= m_NextWoolTime ) ? 0xCF : 0xDF;
}
public override string DefaultName => "a sheep";
[Constructible]
public Sheep() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a sheep";
Body = 0xCF;
BaseSoundID = 0xD6;
@ -108,4 +109,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a walrus corpse" )]
public class Walrus : BaseCreature
{
public override string DefaultName => "a walrus";
[Constructible]
public Walrus() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a walrus";
Body = 0xDD;
BaseSoundID = 0xE0;
@ -66,4 +67,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -18,8 +18,8 @@ namespace Server.Mobiles
{
}
public override bool SubdueBeforeTame{ get{ return true; } } // Must be beaten into submission
public override bool ReduceSpeedWithDamage{ get{ return false; } }
public override bool SubdueBeforeTame => true; // Must be beaten into submission
public override bool ReduceSpeedWithDamage => false;
[Constructible]
public Beetle( string name ) : base( name, 0x317, 0x3EBC, AIType.AI_Melee, FightMode.Closest, 10, 1, 0.25, 0.5 )
@ -175,4 +175,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -102,7 +102,7 @@ namespace Server.Mobiles
{
}
public override bool DisplayLootType { get { return false; } }
public override bool DisplayLootType => false;
public virtual int FollowerSlots { get { return 1; } }
@ -367,8 +367,8 @@ namespace Server.Mobiles
m_Mount = mount;
}
public override bool ClearHandsOnCast { get { return false; } }
public override bool RevealOnCast { get { return false; } }
public override bool ClearHandsOnCast => false;
public override bool RevealOnCast => false;
public override TimeSpan GetCastRecovery()
{
@ -715,7 +715,7 @@ namespace Server.Mobiles
public class RideablePolarBear : EtherealMount
{
public override int LabelNumber { get { return 1076159; } } // Rideable Polar Bear
public override int LabelNumber { get { return 1076159; } } // Rideable Polar Bear
public override int EtherealHue { get { return 0; } }
[Constructible]

View file

@ -52,7 +52,7 @@ namespace Server.Mobiles
PackItem( new Ruby( Utility.RandomMinMax( 16, 30 ) ) );
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override bool HasBreath => true; // fire breath enabled
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
public override PackInstinct PackInstinct{ get{ return PackInstinct.Daemon | PackInstinct.Equine; } }
@ -90,4 +90,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -6,11 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a hellsteed corpse" )]
public class HellSteed : BaseMount
{
public override bool HasBreath { get { return true; } }
public override bool HasBreath => true;
public override int BreathChaosDamage { get { return 100; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
[Constructible]
[Constructible]
public HellSteed() : this( "a hellsteed" )
{
}
@ -64,4 +64,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -10,12 +10,9 @@ namespace Server.Mobiles
{
public override double WeaponAbilityChance { get { return 0.07; } } /* 1 in 15 chance of using per landed hit */
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.Dismount;
}
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
public override bool StatLossAfterTame { get { return true; } }
public override bool StatLossAfterTame => true;
private static int GetHue()
{
@ -23,23 +20,23 @@ namespace Server.Mobiles
/*
1000 1075 No Hue Color 93.02% 0x0
*
*
10 1075 Ice Green 0.93% 0x847F
10 1075 Light Blue 0.93% 0x848D
10 1075 Strong Cyan 0.93% 0x8495
10 1075 Agapite 0.93% 0x8899
10 1075 Gold 0.93% 0x8032
*
*
8 1075 Blue and Yellow 0.74% 0x8487
*
*
5 1075 Ice Blue 0.47% 0x8482
*
*
3 1075 Cyan 0.28% 0x8123
3 1075 Light Green 0.28% 0x8295
*
*
2 1075 Strong Yellow 0.19% 0x8037
2 1075 Green 0.19% 0x8030 //this one is an approximation
*
*
1 1075 Strong Purple 0.09% 0x8490
1 1075 Strong Green 0.09% 0x855C
* */
@ -70,7 +67,7 @@ namespace Server.Mobiles
return 0x848D;
else if( rand <= 74 )
return 0x847F;
return 0;
}
@ -153,7 +150,7 @@ namespace Server.Mobiles
public override int Meat { get { return 16; } }
public override int Hides { get { return 60; } }
public override FoodType FavoriteFood { get { return FoodType.Meat; } }
public override bool CanAngerOnTame { get { return true; } }
public override bool CanAngerOnTame => true;
public override void OnGaveMeleeAttack( Mobile defender )
{

View file

@ -8,10 +8,10 @@ namespace Server.Mobiles
[CorpseName( "a ki-rin corpse" )]
public class Kirin : BaseMount
{
public override bool AllowFemaleRider{ get{ return false; } }
public override bool AllowFemaleTamer{ get{ return false; } }
public override bool AllowFemaleRider => false;
public override bool AllowFemaleTamer => false;
public override bool InitialInnocent{ get{ return true; } }
public override bool InitialInnocent => true;
public override TimeSpan MountAbilityDelay { get { return TimeSpan.FromHours( 1.0 ); } }
@ -130,4 +130,4 @@ namespace Server.Mobiles
AI = AIType.AI_Mage;
}
}
}
}

View file

@ -10,12 +10,9 @@ namespace Server.Mobiles
{
public override double WeaponAbilityChance { get { return 0.07; } } /* 1 in 15 chance of using; 1 in 5 chance of success */
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.Dismount;
}
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
public override bool StatLossAfterTame { get { return true; } }
public override bool StatLossAfterTame => true;
private static int GetHue()
{
@ -153,7 +150,7 @@ namespace Server.Mobiles
public override int Meat { get { return 16; } }
public override int Hides { get { return 60; } }
public override FoodType FavoriteFood { get { return FoodType.Meat; } }
public override bool CanAngerOnTame { get { return true; } }
public override bool CanAngerOnTame => true;
public override void OnGaveMeleeAttack( Mobile defender )
{

View file

@ -92,12 +92,12 @@ namespace Server.Mobiles
return base.GetAngerSound();
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override bool HasBreath => true; // fire breath enabled
public override int Meat{ get{ return 5; } }
public override int Hides{ get{ return 10; } }
public override HideType HideType{ get{ return HideType.Barbed; } }
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
public override bool CanAngerOnTame { get { return true; } }
public override bool CanAngerOnTame => true;
public Nightmare( Serial serial ) : base( serial )
{
@ -122,4 +122,4 @@ namespace Server.Mobiles
BaseSoundID = 0x16A;
}
}
}
}

View file

@ -54,7 +54,7 @@ namespace Server.Mobiles
return 1.0;
}
public override bool AutoDispel{ get{ return !Controlled; } }
public override bool AutoDispel => !Controlled;
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
public ScaledSwampDragon( Serial serial ) : base( serial )
@ -75,4 +75,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,8 +6,10 @@ namespace Server.Mobiles
[CorpseName( "an undead horse corpse" )]
public class SkeletalMount : BaseMount
{
[Constructible]
public SkeletalMount() : this( "a skeletal steed" )
public override string DefaultName => "a skeletal steed";
[Constructible]
public SkeletalMount() : this( null )
{
}
@ -38,8 +40,8 @@ namespace Server.Mobiles
Karma = 0;
}
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune => Poison.Lethal;
public override bool BleedImmune => true;
public SkeletalMount( Serial serial ) : base( serial )
{
@ -62,7 +64,6 @@ namespace Server.Mobiles
{
case 0:
{
Name = "a skeletal steed";
Tamable = false;
MinTameSkill = 0.0;
ControlSlots = 0;
@ -71,4 +72,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -152,14 +152,14 @@ namespace Server.Mobiles
return 1.0;
}
public override bool ReacquireOnMovement{ get{ return true; } }
public override bool AutoDispel{ get{ return !Controlled; } }
public override bool ReacquireOnMovement => true;
public override bool AutoDispel => !Controlled;
public override FoodType FavoriteFood{ get{ return FoodType.Meat; } }
public override int Meat{ get{ return 19; } }
public override int Hides{ get{ return 20; } }
public override int Scales{ get{ return 5; } }
public override ScaleType ScaleType{ get{ return ScaleType.Green; } }
public override bool CanAngerOnTame { get { return true; } }
public override bool CanAngerOnTame => true;
public SwampDragon( Serial serial ) : base( serial )
{
@ -212,4 +212,4 @@ namespace Server.Mobiles
BaseSoundID = 0x16A;
}
}
}
}

View file

@ -8,10 +8,10 @@ namespace Server.Mobiles
[CorpseName( "a unicorn corpse" )]
public class Unicorn : BaseMount
{
public override bool AllowMaleRider{ get{ return false; } }
public override bool AllowMaleTamer{ get{ return false; } }
public override bool AllowMaleRider => false;
public override bool AllowMaleTamer => false;
public override bool InitialInnocent{ get{ return true; } }
public override bool InitialInnocent => true;
public override TimeSpan MountAbilityDelay { get { return TimeSpan.FromHours( 1.0 ); } }
@ -114,7 +114,7 @@ namespace Server.Mobiles
get{ return OppositionGroup.FeyAndUndead; }
}
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override int Meat{ get{ return 3; } }
public override int Hides{ get{ return 10; } }
public override HideType HideType{ get{ return HideType.Horned; } }
@ -138,4 +138,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "an alligator corpse" )]
public class Alligator : BaseCreature
{
public override string DefaultName => "an alligator";
[Constructible]
public Alligator() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an alligator";
Body = 0xCA;
BaseSoundID = 660;
@ -69,4 +70,4 @@ namespace Server.Mobiles
BaseSoundID = 660;
}
}
}
}

View file

@ -8,10 +8,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Serpant" )]
public class GiantSerpent : BaseCreature
{
public override string DefaultName => "a giant snake";
[Constructible]
public GiantSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a giant serpent";
Body = 0x15;
Hue = Utility.RandomSnakeHue();
BaseSoundID = 219;
@ -53,10 +54,10 @@ namespace Server.Mobiles
AddLoot( LootPack.Average );
}
public override Poison PoisonImmune{ get{ return Poison.Greater; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } }
public override Poison PoisonImmune => Poison.Greater;
public override Poison HitPoison => (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly);
public override bool DeathAdderCharmable{ get{ return true; } }
public override bool DeathAdderCharmable => true;
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
@ -83,4 +84,4 @@ namespace Server.Mobiles
BaseSoundID = 219;
}
}
}
}

View file

@ -8,10 +8,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Iceserpant" )]
public class IceSerpent : BaseCreature
{
public override string DefaultName => "a giant ice serpent";
[Constructible]
public IceSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a giant ice serpent";
Body = 89;
BaseSoundID = 219;
@ -43,7 +44,7 @@ namespace Server.Mobiles
VirtualArmor = 32;
PackItem( Loot.RandomArmorOrShieldOrWeapon() );
switch ( Utility.Random( 10 ))
{
case 0: PackItem( new LeftArm() ); break;
@ -67,7 +68,7 @@ namespace Server.Mobiles
AddLoot( LootPack.Meager );
}
public override bool DeathAdderCharmable{ get{ return true; } }
public override bool DeathAdderCharmable => true;
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
@ -94,4 +95,4 @@ namespace Server.Mobiles
BaseSoundID = 219;
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Icesnake" )]
public class IceSnake : BaseCreature
{
public override string DefaultName => "an ice snake";
[Constructible]
public IceSnake() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an ice snake";
Body = 52;
Hue = 0x480;
BaseSoundID = 0xDB;
@ -47,7 +48,7 @@ namespace Server.Mobiles
AddLoot( LootPack.Meager );
}
public override bool DeathAdderCharmable{ get{ return true; } }
public override bool DeathAdderCharmable => true;
public override int Meat{ get{ return 1; } }
@ -69,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -8,10 +8,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Lavalizard" )]
public class LavaLizard : BaseCreature
{
public override string DefaultName => "a lava lizard";
[Constructible]
public LavaLizard() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a lava lizard";
Body = 0xCE;
Hue = Utility.RandomList( 0x647, 0x650, 0x659, 0x662, 0x66B, 0x674 );
BaseSoundID = 0x5A;
@ -53,7 +54,7 @@ namespace Server.Mobiles
AddLoot( LootPack.Meager );
}
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override bool HasBreath => true; // fire breath enabled
public override int Hides{ get{ return 12; } }
public override HideType HideType{ get{ return HideType.Spined; } }
@ -75,4 +76,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -9,10 +9,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Lavaserpant" )]
public class LavaSerpent : BaseCreature
{
public override string DefaultName => "a lava serpent";
[Constructible]
public LavaSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a lava serpent";
Body = 90;
BaseSoundID = 219;
@ -52,9 +53,9 @@ namespace Server.Mobiles
AddLoot( LootPack.Average );
}
public override bool DeathAdderCharmable{ get{ return true; } }
public override bool DeathAdderCharmable => true;
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override bool HasBreath => true; // fire breath enabled
public override int Meat{ get{ return 4; } }
public override int Hides{ get{ return 15; } }
public override HideType HideType{ get{ return HideType.Spined; } }
@ -80,4 +81,4 @@ namespace Server.Mobiles
BaseSoundID = 219;
}
}
}
}

View file

@ -8,10 +8,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Lavasnake" )]
public class LavaSnake : BaseCreature
{
public override string DefaultName => "a lava snake";
[Constructible]
public LavaSnake() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a lava snake";
Body = 52;
Hue = Utility.RandomList( 0x647, 0x650, 0x659, 0x662, 0x66B, 0x674 );
BaseSoundID = 0xDB;
@ -49,9 +50,9 @@ namespace Server.Mobiles
AddLoot( LootPack.Poor );
}
public override bool DeathAdderCharmable{ get{ return true; } }
public override bool DeathAdderCharmable => true;
public override bool HasBreath{ get{ return true; } } // fire breath enabled
public override bool HasBreath => true; // fire breath enabled
public override int Meat{ get{ return 1; } }
public LavaSnake(Serial serial) : base(serial)
@ -72,4 +73,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -11,11 +11,12 @@ namespace Server.Mobiles
public override Faction FactionAllegiance { get { return TrueBritannians.Instance; } }
public override Ethics.Ethic EthicAllegiance { get { return Ethics.Ethic.Hero; } }
public override string DefaultName => "a silver serpent";
[Constructible]
public SilverSerpent() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Body = 92;
Name = "a silver serpent";
BaseSoundID = 219;
SetStr( 161, 360 );
@ -52,11 +53,11 @@ namespace Server.Mobiles
AddLoot( LootPack.Gems, 2 );
}
public override bool DeathAdderCharmable{ get{ return true; } }
public override bool DeathAdderCharmable => true;
public override int Meat{ get{ return 1; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison HitPoison{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override Poison HitPoison => Poison.Lethal;
public SilverSerpent(Serial serial) : base(serial)
{
@ -79,4 +80,4 @@ namespace Server.Mobiles
BaseSoundID = 219;
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a snake corpse" )]
public class Snake : BaseCreature
{
public override string DefaultName => "a snake";
[Constructible]
public Snake() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a snake";
Body = 52;
Hue = Utility.RandomSnakeHue();
BaseSoundID = 0xDB;
@ -43,10 +44,10 @@ namespace Server.Mobiles
MinTameSkill = 59.1;
}
public override Poison PoisonImmune{ get{ return Poison.Lesser; } }
public override Poison HitPoison{ get{ return Poison.Lesser; } }
public override Poison PoisonImmune => Poison.Lesser;
public override Poison HitPoison => Poison.Lesser;
public override bool DeathAdderCharmable{ get{ return true; } }
public override bool DeathAdderCharmable => true;
public override int Meat{ get{ return 1; } }
public override FoodType FavoriteFood{ get{ return FoodType.Eggs; } }
@ -69,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Giantrat" )]
public class GiantRat : BaseCreature
{
public override string DefaultName => "a giant rat";
[Constructible]
public GiantRat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a giant rat";
Body = 0xD7;
BaseSoundID = 0x188;
@ -70,4 +71,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Jackrabbit" )]
public class JackRabbit : BaseCreature
{
public override string DefaultName => "a jack rabbit";
[Constructible]
public JackRabbit() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a jack rabbit";
Body = 0xCD;
Hue = 0x1BB;
@ -49,20 +50,20 @@ namespace Server.Mobiles
{
}
public override int GetAttackSound()
{
return 0xC9;
}
public override int GetAttackSound()
{
return 0xC9;
}
public override int GetHurtSound()
{
return 0xCA;
}
public override int GetHurtSound()
{
return 0xCA;
}
public override int GetDeathSound()
{
return 0xCB;
}
public override int GetDeathSound()
{
return 0xCB;
}
public override void Serialize(GenericWriter writer)
{
@ -78,4 +79,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,13 +6,14 @@ namespace Server.Mobiles
[CorpseName( "a hare corpse" )]
public class Rabbit : BaseCreature
{
public override string DefaultName => "a rabbit";
[Constructible]
public Rabbit() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a rabbit";
Body = 205;
if ( 0.5 >= Utility.RandomDouble() )
if ( Utility.RandomBool() )
Hue = Utility.RandomAnimalHue();
SetStr( 6, 10 );
@ -50,20 +51,20 @@ namespace Server.Mobiles
{
}
public override int GetAttackSound()
{
return 0xC9;
}
public override int GetAttackSound()
{
return 0xC9;
}
public override int GetHurtSound()
{
return 0xCA;
}
public override int GetHurtSound()
{
return 0xCA;
}
public override int GetDeathSound()
{
return 0xCB;
}
public override int GetDeathSound()
{
return 0xCB;
}
public override void Serialize(GenericWriter writer)
{
@ -79,4 +80,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -3,13 +3,15 @@ using Server.Mobiles;
namespace Server.Mobiles
{
[CorpseName( "a sewer rat corpse" )]
public class Sewerrat : BaseCreature
[CorpseName( "a rat corpse" )]
[TypeAlias("Server.Mobiles.Sewerrat")]
public class SewerRat : BaseCreature
{
public override string DefaultName => "a sewer rat";
[Constructible]
public Sewerrat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
public SewerRat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a sewer rat";
Body = 238;
BaseSoundID = 0xCC;
@ -47,10 +49,10 @@ namespace Server.Mobiles
AddLoot( LootPack.Poor );
}
public override int Meat{ get{ return 1; } }
public override FoodType FavoriteFood{ get{ return FoodType.Meat | FoodType.Eggs | FoodType.FruitsAndVegies; } }
public override int Meat => 1;
public override FoodType FavoriteFood => FoodType.Meat | FoodType.Eggs | FoodType.FruitsAndVegies;
public Sewerrat(Serial serial) : base(serial)
public SewerRat(Serial serial) : base(serial)
{
}
@ -68,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,12 +6,13 @@ namespace Server.Mobiles
[CorpseName( "a jwilson corpse" )]
public class Jwilson : BaseCreature
{
public override string DefaultName => "a jwilson";
[Constructible]
public Jwilson() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Hue = Utility.RandomList(0x89C,0x8A2,0x8A8,0x8AE);
this.Body = 0x33;
this.Name = ("a jwilson");
this.VirtualArmor = 8;
this.InitStats(Utility.Random(22,13),Utility.Random(16,6),Utility.Random(16,5));
@ -29,30 +30,30 @@ namespace Server.Mobiles
{
}
public override int GetAngerSound()
{
return 0x1C8;
}
public override int GetAngerSound()
{
return 0x1C8;
}
public override int GetIdleSound()
{
return 0x1C9;
}
public override int GetIdleSound()
{
return 0x1C9;
}
public override int GetAttackSound()
{
return 0x1CA;
}
public override int GetAttackSound()
{
return 0x1CA;
}
public override int GetHurtSound()
{
return 0x1CB;
}
public override int GetHurtSound()
{
return 0x1CB;
}
public override int GetDeathSound()
{
return 0x1CC;
}
public override int GetDeathSound()
{
return 0x1CC;
}
public override void Serialize(GenericWriter writer)
{

View file

@ -6,11 +6,12 @@ namespace Server.Mobiles
[CorpseName("a parrot corpse")]
public class Parrot : BaseCreature
{
public override string DefaultName => "a parrot";
[Constructible]
public Parrot() : base(AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
this.Body = 831;
this.Name = ("a parrot");
this.VirtualArmor = Utility.Random(0,6);
this.InitStats((10),Utility.Random(25,16),(10));
@ -31,30 +32,30 @@ namespace Server.Mobiles
{
}
public override int GetAngerSound()
{
return 0x1B;
}
public override int GetAngerSound()
{
return 0x1B;
}
public override int GetIdleSound()
{
return 0x1C;
}
public override int GetIdleSound()
{
return 0x1C;
}
public override int GetAttackSound()
{
return 0x1D;
}
public override int GetAttackSound()
{
return 0x1D;
}
public override int GetHurtSound()
{
return 0x1E;
}
public override int GetHurtSound()
{
return 0x1E;
}
public override int GetDeathSound()
{
return 0x1F;
}
public override int GetDeathSound()
{
return 0x1F;
}
public override void Serialize(GenericWriter writer)
{
@ -70,4 +71,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -76,17 +76,18 @@ namespace Server.Mobiles
if ( Hue == 0 )
Hue = Utility.RandomBirdHue();
}
}
}
[CorpseName( "a bird corpse" )]
public class TropicalBird : BaseCreature
{
public override string DefaultName => "a tropical bird";
[Constructible]
public TropicalBird() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Hue = Utility.RandomBirdHue();
Name = "a tropical bird";
Body = 6;
BaseSoundID = 0xBF;
@ -134,6 +135,6 @@ namespace Server.Mobiles
base.Deserialize( reader );
int version = reader.ReadInt();
}
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[TypeAlias( "Server.Mobiles.Housecat" )]
public class Cat : BaseCreature
{
public override string DefaultName => "a cat";
[Constructible]
public Cat() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a cat";
Body = 0xC9;
Hue = Utility.RandomAnimalHue();
BaseSoundID = 0x69;
@ -64,4 +65,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a dog corpse" )]
public class Dog : BaseCreature
{
public override string DefaultName => "a dog";
[Constructible]
public Dog() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a dog";
Body = 0xD9;
Hue = Utility.RandomAnimalHue();
BaseSoundID = 0x85;
@ -63,4 +64,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,10 +6,11 @@ namespace Server.Mobiles
[CorpseName( "a rat corpse" )]
public class Rat : BaseCreature
{
public override string DefaultName => "a rat";
[Constructible]
public Rat() : base( AIType.AI_Animal, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a rat";
Body = 238;
BaseSoundID = 0xCC;
@ -67,4 +68,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -179,25 +179,25 @@ namespace Server.Mobiles
private Mobile m_FocusMob; // Use focus mob instead of combatant, maybe we don't whan to fight
private FightMode m_FightMode; // The style the mob uses
private int m_iRangePerception; // The view area
private int m_iRangeFight; // The fight distance
private int m_RangePerception; // The view area
private int m_RangeFight; // The fight distance
private bool m_bDebugAI; // Show debug AI messages
private bool m_DebugAI; // Show debug AI messages
private int m_iTeam; // Monster Team
private int m_Team; // Monster Team
private double m_dActiveSpeed; // Timer speed when active
private double m_dPassiveSpeed; // Timer speed when not active
private double m_dCurrentSpeed; // The current speed, lets say it could be changed by something;
private double m_ActiveSpeed; // Timer speed when active
private double m_PassiveSpeed; // Timer speed when not active
private double m_CurrentSpeed; // The current speed, lets say it could be changed by something;
private Point3D m_pHome; // The home position of the creature, used by some AI
private Point3D m_Home; // The home position of the creature, used by some AI
private Map m_HomeMap; // Used by grim reaper and guards that follow across maps!
private int m_iRangeHome = 10; // The home range of the creature
private int m_RangeHome = 10; // The home range of the creature
List<Type> m_arSpellAttack; // List of attack spell/power
List<Type> m_arSpellDefense; // List of defensive spell/power
List<Type> m_SpellAttack; // List of attack spell/power
List<Type> m_SpellDefense; // List of defensive spell/power
private bool m_bControlled; // Is controlled
private bool m_Controlled; // Is controlled
private Mobile m_ControlMaster; // My master
private Mobile m_ControlTarget; // My target mobile
private Point3D m_ControlDest; // My target destination (patrol)
@ -205,7 +205,7 @@ namespace Server.Mobiles
private int m_Loyalty;
private double m_dMinTameSkill;
private double m_MinTameSkill;
private bool m_bTamable;
private bool m_bSummoned = false;
@ -254,6 +254,27 @@ namespace Server.Mobiles
#endregion
public virtual string DefaultName{ get{ return null; } }
[CommandProperty(AccessLevel.GameMaster)]
public override string Name
{
get
{
if (NameMod == null && Name == null)
return DefaultName;
return base.Name;
}
set
{
if (value == DefaultName)
base.Name = null;
else
base.Name = value;
}
}
public virtual InhumanSpeech SpeechType{ get{ return null; } }
/* Do not serialize this till the code is finalized */
@ -345,7 +366,7 @@ namespace Server.Mobiles
{
return null;
}
public virtual bool CanShout { get { return false; } }
public const int ShoutRange = 8;
@ -390,11 +411,11 @@ namespace Server.Mobiles
public virtual TimeSpan BondingDelay{ get{ return TimeSpan.FromDays( 7.0 ); } }
public virtual TimeSpan BondingAbandonDelay{ get{ return TimeSpan.FromDays( 1.0 ); } }
public override bool CanRegenHits{ get{ return !m_IsDeadPet && base.CanRegenHits; } }
public override bool CanRegenStam{ get{ return !IsParagon && !m_IsDeadPet && base.CanRegenStam; } }
public override bool CanRegenMana{ get{ return !m_IsDeadPet && base.CanRegenMana; } }
public override bool CanRegenHits => !m_IsDeadPet && base.CanRegenHits;
public override bool CanRegenStam => !IsParagon && !m_IsDeadPet && base.CanRegenStam;
public override bool CanRegenMana => !m_IsDeadPet && base.CanRegenMana;
public override bool IsDeadBondedPet{ get{ return m_IsDeadPet; } }
public override bool IsDeadBondedPet => m_IsDeadPet;
private bool m_IsBonded;
private bool m_IsDeadPet;
@ -922,7 +943,7 @@ namespace Server.Mobiles
BaseCreature c = (BaseCreature)m;
return ( m_iTeam == c.m_iTeam && ( (m_bSummoned || m_bControlled) == (c.m_bSummoned || c.m_bControlled) )/* && c.Combatant != this */);
return ( m_Team == c.m_Team && ( (m_bSummoned || m_Controlled) == (c.m_bSummoned || c.m_Controlled) )/* && c.Combatant != this */);
}
#endregion
@ -998,7 +1019,7 @@ namespace Server.Mobiles
if ( ( FightMode == FightMode.Evil && m.Karma < 0 ) || ( c.FightMode == FightMode.Evil && Karma < 0 ) )
return true;
return ( m_iTeam != c.m_iTeam || ( (m_bSummoned || m_bControlled) != (c.m_bSummoned || c.m_bControlled ) )/* || c.Combatant == this*/ );
return ( m_Team != c.m_Team || ( (m_bSummoned || m_Controlled) != (c.m_bSummoned || c.m_Controlled ) )/* || c.Combatant == this*/ );
}
public override string ApplyNameSuffix( string suffix )
@ -1045,10 +1066,10 @@ namespace Server.Mobiles
public virtual double GetControlChance( Mobile m, bool useBaseSkill )
{
if ( m_dMinTameSkill <= 29.1 || m_bSummoned || m.AccessLevel >= AccessLevel.GameMaster )
if ( m_MinTameSkill <= 29.1 || m_bSummoned || m.AccessLevel >= AccessLevel.GameMaster )
return 1.0;
double dMinTameSkill = m_dMinTameSkill;
double dMinTameSkill = m_MinTameSkill;
if ( dMinTameSkill > -24.9 && Server.SkillHandlers.AnimalTaming.CheckMastery( m, this ) )
dMinTameSkill = -24.9;
@ -1418,8 +1439,8 @@ namespace Server.Mobiles
Seems this actually was removed on OSI somewhere between the original bug report and now.
We will call it ML, until we can get better information. I suspect it was on the OSI TC when
originally it taken out of RunUO, and not implemented on OSIs production shards until more
recently. Either way, this is, or was, accurate OSI behavior, and just entirely
originally it taken out of RunUO, and not implemented on OSIs production shards until more
recently. Either way, this is, or was, accurate OSI behavior, and just entirely
removing it was incorrect. OSI followers were distracted by being attacked well into
AoS, at very least.
@ -1687,25 +1708,25 @@ namespace Server.Mobiles
m_CurrentAI = ai;
m_DefaultAI = ai;
m_iRangePerception = iRangePerception;
m_iRangeFight = iRangeFight;
m_RangePerception = iRangePerception;
m_RangeFight = iRangeFight;
m_FightMode = mode;
m_iTeam = 0;
m_Team = 0;
SpeedInfo.GetSpeeds( this, ref dActiveSpeed, ref dPassiveSpeed );
m_dActiveSpeed = dActiveSpeed;
m_dPassiveSpeed = dPassiveSpeed;
m_dCurrentSpeed = dPassiveSpeed;
m_ActiveSpeed = dActiveSpeed;
m_PassiveSpeed = dPassiveSpeed;
m_CurrentSpeed = dPassiveSpeed;
m_bDebugAI = false;
m_DebugAI = false;
m_arSpellAttack = new List<Type>();
m_arSpellDefense = new List<Type>();
m_SpellAttack = new List<Type>();
m_SpellDefense = new List<Type>();
m_bControlled = false;
m_Controlled = false;
m_ControlMaster = null;
m_ControlTarget = null;
m_ControlOrder = OrderType.None;
@ -1731,10 +1752,10 @@ namespace Server.Mobiles
public BaseCreature( Serial serial ) : base( serial )
{
m_arSpellAttack = new List<Type>();
m_arSpellDefense = new List<Type>();
m_SpellAttack = new List<Type>();
m_SpellDefense = new List<Type>();
m_bDebugAI = false;
m_DebugAI = false;
}
public override void Serialize( GenericWriter writer )
@ -1746,45 +1767,45 @@ namespace Server.Mobiles
writer.Write( (int)m_CurrentAI );
writer.Write( (int)m_DefaultAI );
writer.Write( (int)m_iRangePerception );
writer.Write( (int)m_iRangeFight );
writer.Write( (int)m_RangePerception );
writer.Write( (int)m_RangeFight );
writer.Write( (int)m_iTeam );
writer.Write( (int)m_Team );
writer.Write( (double)m_dActiveSpeed );
writer.Write( (double)m_dPassiveSpeed );
writer.Write( (double)m_dCurrentSpeed );
writer.Write( (double)m_ActiveSpeed );
writer.Write( (double)m_PassiveSpeed );
writer.Write( (double)m_CurrentSpeed );
writer.Write( (int) m_pHome.X );
writer.Write( (int) m_pHome.Y );
writer.Write( (int) m_pHome.Z );
writer.Write( (int) m_Home.X );
writer.Write( (int) m_Home.Y );
writer.Write( (int) m_Home.Z );
// Version 1
writer.Write( (int) m_iRangeHome );
writer.Write( (int) m_RangeHome );
int i=0;
writer.Write( (int) m_arSpellAttack.Count );
for ( i=0; i< m_arSpellAttack.Count; i++ )
writer.Write( (int) m_SpellAttack.Count );
for ( i=0; i< m_SpellAttack.Count; i++ )
{
writer.Write( m_arSpellAttack[i].ToString() );
writer.Write( m_SpellAttack[i].ToString() );
}
writer.Write( (int) m_arSpellDefense.Count );
for ( i=0; i< m_arSpellDefense.Count; i++ )
writer.Write( (int) m_SpellDefense.Count );
for ( i=0; i< m_SpellDefense.Count; i++ )
{
writer.Write( m_arSpellDefense[i].ToString() );
writer.Write( m_SpellDefense[i].ToString() );
}
// Version 2
writer.Write( (int) m_FightMode );
writer.Write( (bool) m_bControlled );
writer.Write( (bool) m_Controlled );
writer.Write( (Mobile) m_ControlMaster );
writer.Write( (Mobile) m_ControlTarget );
writer.Write( (Point3D) m_ControlDest );
writer.Write( (int) m_ControlOrder );
writer.Write( (double) m_dMinTameSkill );
writer.Write( (double) m_MinTameSkill );
// Removed in version 9
//writer.Write( (double) m_dMaxTameSkill );
writer.Write( (bool) m_bTamable );
@ -1884,25 +1905,25 @@ namespace Server.Mobiles
m_CurrentAI = (AIType)reader.ReadInt();
m_DefaultAI = (AIType)reader.ReadInt();
m_iRangePerception = reader.ReadInt();
m_iRangeFight = reader.ReadInt();
m_RangePerception = reader.ReadInt();
m_RangeFight = reader.ReadInt();
m_iTeam = reader.ReadInt();
m_Team = reader.ReadInt();
m_dActiveSpeed = reader.ReadDouble();
m_dPassiveSpeed = reader.ReadDouble();
m_dCurrentSpeed = reader.ReadDouble();
m_ActiveSpeed = reader.ReadDouble();
m_PassiveSpeed = reader.ReadDouble();
m_CurrentSpeed = reader.ReadDouble();
if ( m_iRangePerception == OldRangePerception )
m_iRangePerception = DefaultRangePerception;
if ( m_RangePerception == OldRangePerception )
m_RangePerception = DefaultRangePerception;
m_pHome.X = reader.ReadInt();
m_pHome.Y = reader.ReadInt();
m_pHome.Z = reader.ReadInt();
m_Home.X = reader.ReadInt();
m_Home.Y = reader.ReadInt();
m_Home.Z = reader.ReadInt();
if ( version >= 1 )
{
m_iRangeHome = reader.ReadInt();
m_RangeHome = reader.ReadInt();
int i, iCount;
@ -1914,7 +1935,7 @@ namespace Server.Mobiles
if ( type != null )
{
m_arSpellAttack.Add( type );
m_SpellAttack.Add( type );
}
}
@ -1926,26 +1947,26 @@ namespace Server.Mobiles
if ( type != null )
{
m_arSpellDefense.Add( type );
m_SpellDefense.Add( type );
}
}
}
else
{
m_iRangeHome = 0;
m_RangeHome = 0;
}
if ( version >= 2 )
{
m_FightMode = ( FightMode )reader.ReadInt();
m_bControlled = reader.ReadBool();
m_Controlled = reader.ReadBool();
m_ControlMaster = reader.ReadMobile();
m_ControlTarget = reader.ReadMobile();
m_ControlDest = reader.ReadPoint3D();
m_ControlOrder = (OrderType) reader.ReadInt();
m_dMinTameSkill = reader.ReadDouble();
m_MinTameSkill = reader.ReadDouble();
if ( version < 9 )
reader.ReadDouble();
@ -1965,7 +1986,7 @@ namespace Server.Mobiles
{
m_FightMode = FightMode.Closest;
m_bControlled = false;
m_Controlled = false;
m_ControlMaster = null;
m_ControlTarget = null;
m_ControlOrder = OrderType.None;
@ -2040,29 +2061,29 @@ namespace Server.Mobiles
if ( version < 16 && Loyalty != MaxLoyalty )
Loyalty *= 10;
double activeSpeed = m_dActiveSpeed;
double passiveSpeed = m_dPassiveSpeed;
double activeSpeed = m_ActiveSpeed;
double passiveSpeed = m_PassiveSpeed;
SpeedInfo.GetSpeeds( this, ref activeSpeed, ref passiveSpeed );
bool isStandardActive = false;
for ( int i = 0; !isStandardActive && i < m_StandardActiveSpeeds.Length; ++i )
isStandardActive = ( m_dActiveSpeed == m_StandardActiveSpeeds[i] );
isStandardActive = ( m_ActiveSpeed == m_StandardActiveSpeeds[i] );
bool isStandardPassive = false;
for ( int i = 0; !isStandardPassive && i < m_StandardPassiveSpeeds.Length; ++i )
isStandardPassive = ( m_dPassiveSpeed == m_StandardPassiveSpeeds[i] );
isStandardPassive = ( m_PassiveSpeed == m_StandardPassiveSpeeds[i] );
if ( isStandardActive && m_dCurrentSpeed == m_dActiveSpeed )
m_dCurrentSpeed = activeSpeed;
else if ( isStandardPassive && m_dCurrentSpeed == m_dPassiveSpeed )
m_dCurrentSpeed = passiveSpeed;
if ( isStandardActive && m_CurrentSpeed == m_ActiveSpeed )
m_CurrentSpeed = activeSpeed;
else if ( isStandardPassive && m_CurrentSpeed == m_PassiveSpeed )
m_CurrentSpeed = passiveSpeed;
if ( isStandardActive && !m_Paragon )
m_dActiveSpeed = activeSpeed;
m_ActiveSpeed = activeSpeed;
if ( isStandardPassive && !m_Paragon )
m_dPassiveSpeed = passiveSpeed;
m_PassiveSpeed = passiveSpeed;
if ( version >= 14 )
{
@ -2157,7 +2178,7 @@ namespace Server.Mobiles
return false;
}
public override bool ShouldCheckStatTimers{ get{ return false; } }
public override bool ShouldCheckStatTimers => false;
#region Food
private static Type[] m_Eggs = new Type[]
@ -2298,7 +2319,7 @@ namespace Server.Mobiles
if ( master != null && master == from ) //So friends can't start the bonding process
{
if ( m_dMinTameSkill <= 29.1 || master.Skills[SkillName.AnimalTaming].Base >= m_dMinTameSkill || OverrideBondingReqs() || (Core.ML && master.Skills[SkillName.AnimalTaming].Value >= m_dMinTameSkill) )
if ( m_MinTameSkill <= 29.1 || master.Skills[SkillName.AnimalTaming].Base >= m_MinTameSkill || OverrideBondingReqs() || (Core.ML && master.Skills[SkillName.AnimalTaming].Value >= m_MinTameSkill) )
{
if ( BondingBegin == DateTime.MinValue )
{
@ -2460,11 +2481,11 @@ namespace Server.Mobiles
{
get
{
return m_bDebugAI;
return m_DebugAI;
}
set
{
m_bDebugAI = value;
m_DebugAI = value;
}
}
@ -2473,11 +2494,11 @@ namespace Server.Mobiles
{
get
{
return m_iTeam;
return m_Team;
}
set
{
m_iTeam = value;
m_Team = value;
OnTeamChange();
}
@ -2518,11 +2539,11 @@ namespace Server.Mobiles
{
get
{
return m_iRangePerception;
return m_RangePerception;
}
set
{
m_iRangePerception = value;
m_RangePerception = value;
}
}
@ -2531,11 +2552,11 @@ namespace Server.Mobiles
{
get
{
return m_iRangeFight;
return m_RangeFight;
}
set
{
m_iRangeFight = value;
m_RangeFight = value;
}
}
@ -2544,11 +2565,11 @@ namespace Server.Mobiles
{
get
{
return m_iRangeHome;
return m_RangeHome;
}
set
{
m_iRangeHome = value;
m_RangeHome = value;
}
}
@ -2557,11 +2578,11 @@ namespace Server.Mobiles
{
get
{
return m_dActiveSpeed;
return m_ActiveSpeed;
}
set
{
m_dActiveSpeed = value;
m_ActiveSpeed = value;
}
}
@ -2570,11 +2591,11 @@ namespace Server.Mobiles
{
get
{
return m_dPassiveSpeed;
return m_PassiveSpeed;
}
set
{
m_dPassiveSpeed = value;
m_PassiveSpeed = value;
}
}
@ -2586,13 +2607,13 @@ namespace Server.Mobiles
if ( m_TargetLocation != null )
return 0.3;
return m_dCurrentSpeed;
return m_CurrentSpeed;
}
set
{
if ( m_dCurrentSpeed != value )
if ( m_CurrentSpeed != value )
{
m_dCurrentSpeed = value;
m_CurrentSpeed = value;
if (m_AI != null)
m_AI.OnCurrentSpeedChanged();
@ -2605,11 +2626,11 @@ namespace Server.Mobiles
{
get
{
return m_pHome;
return m_Home;
}
set
{
m_pHome = value;
m_Home = value;
}
}
@ -2631,14 +2652,14 @@ namespace Server.Mobiles
{
get
{
return m_bControlled;
return m_Controlled;
}
set
{
if ( m_bControlled == value )
if ( m_Controlled == value )
return;
m_bControlled = value;
m_Controlled = value;
Delta( MobileDelta.Noto );
InvalidateProperties();
@ -2859,11 +2880,11 @@ namespace Server.Mobiles
{
get
{
return m_dMinTameSkill;
return m_MinTameSkill;
}
set
{
m_dMinTameSkill = value;
m_MinTameSkill = value;
}
}
@ -3003,13 +3024,13 @@ namespace Server.Mobiles
public void DebugSay( string text )
{
if ( m_bDebugAI )
if ( m_DebugAI )
this.PublicOverheadMessage( MessageType.Regular, 41, false, text );
}
public void DebugSay( string format, params object[] args )
{
if ( m_bDebugAI )
if ( m_DebugAI )
this.PublicOverheadMessage( MessageType.Regular, 41, false, String.Format( format, args ) );
}
@ -3065,7 +3086,7 @@ namespace Server.Mobiles
public double GetHomeDistance()
{
return GetDistanceToSqrt( m_pHome );
return GetDistanceToSqrt( m_Home );
}
public virtual int GetTeamSize(int iRange)
@ -3354,7 +3375,7 @@ namespace Server.Mobiles
pl.FinishShield();
}
if ( aggressor.ChangingCombatant && (m_bControlled || m_bSummoned) && (ct == OrderType.Come || ( !Core.ML && ct == OrderType.Stay ) || ct == OrderType.Stop || ct == OrderType.None || ct == OrderType.Follow) )
if ( aggressor.ChangingCombatant && (m_Controlled || m_bSummoned) && (ct == OrderType.Come || ( !Core.ML && ct == OrderType.Stay ) || ct == OrderType.Stop || ct == OrderType.None || ct == OrderType.Follow) )
{
ControlTarget = aggressor;
ControlOrder = OrderType.Attack;
@ -3396,7 +3417,7 @@ namespace Server.Mobiles
if ( m_AI != null && Commandable )
m_AI.GetContextMenuEntries( from, list );
if ( m_bTamable && !m_bControlled && from.Alive )
if ( m_bTamable && !m_Controlled && from.Alive )
list.Add( new TameEntry( from, this ) );
AddCustomContextEntries( from, list );
@ -3431,7 +3452,7 @@ namespace Server.Mobiles
if ( speechType != null && (speechType.Flags & IHSFlags.OnSpeech) != 0 && from.InRange( this, 3 ) )
return true;
return ( m_AI != null && m_AI.HandlesOnSpeech( from ) && from.InRange( this, m_iRangePerception ) );
return ( m_AI != null && m_AI.HandlesOnSpeech( from ) && from.InRange( this, m_RangePerception ) );
}
public override void OnSpeech( SpeechEventArgs e )
@ -3440,7 +3461,7 @@ namespace Server.Mobiles
if ( speechType != null && speechType.OnSpeech( this, e.Mobile, e.Speech ) )
e.Handled = true;
else if ( !e.Handled && m_AI != null && e.Mobile.InRange( this, m_iRangePerception ) )
else if ( !e.Handled && m_AI != null && e.Mobile.InRange( this, m_RangePerception ) )
m_AI.OnSpeech( e );
}
@ -3573,8 +3594,8 @@ namespace Server.Mobiles
return true; // entered idle state
}
/*
this way, due to the huge number of locations this will have to be changed
/*
this way, due to the huge number of locations this will have to be changed
Perhaps we can change this in the future when fixing game play is not the
major issue.
*/
@ -3709,19 +3730,19 @@ namespace Server.Mobiles
public void AddSpellAttack( Type type )
{
m_arSpellAttack.Add ( type );
m_SpellAttack.Add ( type );
}
public void AddSpellDefense( Type type )
{
m_arSpellDefense.Add ( type );
m_SpellDefense.Add ( type );
}
public Spell GetAttackSpellRandom()
{
if ( m_arSpellAttack.Count > 0 )
if ( m_SpellAttack.Count > 0 )
{
Type type = m_arSpellAttack[Utility.Random(m_arSpellAttack.Count)];
Type type = m_SpellAttack[Utility.Random(m_SpellAttack.Count)];
object[] args = {this, null};
return Activator.CreateInstance( type, args ) as Spell;
@ -3734,9 +3755,9 @@ namespace Server.Mobiles
public Spell GetDefenseSpellRandom()
{
if ( m_arSpellDefense.Count > 0 )
if ( m_SpellDefense.Count > 0 )
{
Type type = m_arSpellDefense[Utility.Random(m_arSpellDefense.Count)];
Type type = m_SpellDefense[Utility.Random(m_SpellDefense.Count)];
object[] args = {this, null};
return Activator.CreateInstance( type, args ) as Spell;
@ -3751,18 +3772,18 @@ namespace Server.Mobiles
{
int i;
for( i=0; i< m_arSpellAttack.Count; i++ )
for( i=0; i< m_SpellAttack.Count; i++ )
{
if( m_arSpellAttack[i] == type )
if( m_SpellAttack[i] == type )
{
object[] args = { this, null };
return Activator.CreateInstance( type, args ) as Spell;
}
}
for ( i=0; i< m_arSpellDefense.Count; i++ )
for ( i=0; i< m_SpellDefense.Count; i++ )
{
if ( m_arSpellDefense[i] == type )
if ( m_SpellDefense[i] == type )
{
object[] args = {this, null};
return Activator.CreateInstance( type, args ) as Spell;
@ -5502,7 +5523,7 @@ namespace Server.Mobiles
{
if ( m_bBardProvoked && damagee == m_bBardTarget )
return m_bBardMaster;
else if ( m_bControlled && m_ControlMaster != null )
else if ( m_Controlled && m_ControlMaster != null )
return m_ControlMaster;
else if ( m_bSummoned && m_SummonMaster != null )
return m_SummonMaster;

View file

@ -14,11 +14,11 @@ namespace Server.Mobiles
{
}
public override bool BardImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override bool Commandable{ get{ return false; } }
public override bool BardImmune => true;
public override Poison PoisonImmune => Poison.Lethal;
public override bool Commandable => false;
public override bool PlayerRangeSensitive { get { return false; } }
public override bool PlayerRangeSensitive => false;
private bool m_LastHidden;
@ -181,4 +181,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -10,9 +10,10 @@ namespace Server.Mobiles
[CorpseName( "a dark wolf corpse" )]
public class DarkWolfFamiliar : BaseFamiliar
{
public override string DefaultName => "a dark wolf";
public DarkWolfFamiliar()
{
Name = "a dark wolf";
Body = 99;
Hue = 0x901;
BaseSoundID = 0xE5;
@ -79,4 +80,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,9 +6,10 @@ namespace Server.Mobiles
[CorpseName( "a death adder corpse" )]
public class DeathAdder : BaseFamiliar
{
public override string DefaultName => "a death adder";
public DeathAdder()
{
Name = "a death adder";
Body = 0x15;
Hue = 0x455;
BaseSoundID = 219;
@ -35,7 +36,7 @@ namespace Server.Mobiles
ControlSlots = 1;
}
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } }
public override Poison HitPoison => (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly);
public DeathAdder( Serial serial ) : base( serial )
{
@ -55,4 +56,4 @@ namespace Server.Mobiles
int version = reader.ReadEncodedInt();
}
}
}
}

View file

@ -14,9 +14,10 @@ namespace Server.Mobiles
{
public override bool DisplayWeight{ get { return true; } }
public override string DefaultName => "a horde minion";
public HordeMinionFamiliar()
{
Name = "a horde minion";
Body = 776;
BaseSoundID = 0x39D;
@ -199,4 +200,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -10,9 +10,10 @@ namespace Server.Mobiles
[CorpseName( "a shadow wisp corpse" )]
public class ShadowWispFamiliar : BaseFamiliar
{
public override string DefaultName => "a shadow wisp";
public ShadowWispFamiliar()
{
Name = "a shadow wisp";
Body = 165;
Hue = 0x901;
BaseSoundID = 466;
@ -113,4 +114,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -10,9 +10,10 @@ namespace Server.Mobiles
[CorpseName( "a vampire bat corpse" )]
public class VampireBatFamiliar : BaseFamiliar
{
public override string DefaultName => "a vampire bat";
public VampireBatFamiliar()
{
Name = "a vampire bat";
Body = 317;
BaseSoundID = 0x270;
@ -58,4 +59,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -12,8 +12,8 @@ namespace Server.Mobiles
private List<SBInfo> m_SBInfos = new List<SBInfo>();
protected override List<SBInfo> SBInfos{ get { return m_SBInfos; } }
public override bool IsActiveVendor{ get{ return false; } }
public override bool IsInvulnerable{ get{ return false; } }
public override bool IsActiveVendor => false;
public override bool IsInvulnerable => false;
public override void InitSBInfo()
{
@ -162,4 +162,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -5,7 +5,7 @@ namespace Server.Mobiles
{
public class EvilHealer : BaseHealer
{
public override bool CanTeach{ get{ return true; } }
public override bool CanTeach => true;
public override bool CheckTeach( SkillName skill, Mobile from )
{
@ -30,8 +30,8 @@ namespace Server.Mobiles
SetSkill( SkillName.Swords, 80.0, 100.0 );
}
public override bool AlwaysMurderer{ get{ return true; } }
public override bool IsActiveVendor{ get{ return true; } }
public override bool AlwaysMurderer => true;
public override bool IsActiveVendor => true;
public override void InitSBInfo()
{
@ -67,4 +67,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -6,7 +6,7 @@ namespace Server.Mobiles
{
public class EvilWanderingHealer : BaseHealer
{
public override bool CanTeach{ get{ return true; } }
public override bool CanTeach => true;
public override bool CheckTeach( SkillName skill, Mobile from )
{
@ -33,8 +33,8 @@ namespace Server.Mobiles
SetSkill( SkillName.SpiritSpeak, 80.0, 100.0 );
}
public override bool AlwaysMurderer{ get{ return true; } }
public override bool ClickTitle{ get{ return false; } } // Do not display title in OnSingleClick
public override bool AlwaysMurderer => true;
public override bool ClickTitle => false; // Do not display title in OnSingleClick
public override bool CheckResurrect( Mobile m )
{
@ -76,4 +76,4 @@ namespace Server.Mobiles
Title = "the priest of Mondain";
}
}
}
}

View file

@ -7,7 +7,7 @@ namespace Server.Mobiles
{
public class FortuneTeller : BaseHealer
{
public override bool CanTeach{ get{ return true; } }
public override bool CanTeach => true;
public override bool CheckTeach( SkillName skill, Mobile from )
{
@ -31,8 +31,8 @@ namespace Server.Mobiles
SetSkill( SkillName.SpiritSpeak, 65.0, 88.0 );
}
public override bool IsActiveVendor{ get{ return true; } }
public override bool IsInvulnerable{ get{ return true; } }
public override bool IsActiveVendor => true;
public override bool IsInvulnerable => true;
public override void InitSBInfo()
{
@ -77,4 +77,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -5,7 +5,7 @@ namespace Server.Mobiles
{
public class Healer : BaseHealer
{
public override bool CanTeach{ get{ return true; } }
public override bool CanTeach => true;
public override bool CheckTeach( SkillName skill, Mobile from )
{
@ -31,8 +31,8 @@ namespace Server.Mobiles
SetSkill( SkillName.Swords, 80.0, 100.0 );
}
public override bool IsActiveVendor{ get{ return true; } }
public override bool IsInvulnerable{ get{ return true; } }
public override bool IsActiveVendor => true;
public override bool IsInvulnerable => true;
public override void InitSBInfo()
{
@ -80,4 +80,4 @@ namespace Server.Mobiles
NameHue = -1;
}
}
}
}

View file

@ -29,13 +29,13 @@ namespace Server.Mobiles
NameHue = 0x35;
}
public override bool IsInvulnerable{ get{ return true; } }
public override bool IsInvulnerable => true;
public override void InitSBInfo()
{
}
public override bool HealsYoungPlayers{ get{ return false; } }
public override bool HealsYoungPlayers => false;
public override void OfferResurrection( Mobile m )
{
@ -82,4 +82,4 @@ namespace Server.Mobiles
}
}
}
}
}

View file

@ -6,7 +6,7 @@ namespace Server.Mobiles
{
public class WanderingHealer : BaseHealer
{
public override bool CanTeach{ get{ return true; } }
public override bool CanTeach => true;
public override bool CheckTeach( SkillName skill, Mobile from )
{
@ -32,7 +32,7 @@ namespace Server.Mobiles
SetSkill( SkillName.SpiritSpeak, 80.0, 100.0 );
}
public override bool ClickTitle{ get{ return false; } } // Do not display title in OnSingleClick
public override bool ClickTitle => false; // Do not display title in OnSingleClick
public override bool CheckResurrect( Mobile m )
{
@ -72,4 +72,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,17 +7,15 @@ namespace Server.Mobiles
[CorpseName( "an abysmal horror corpse" )]
public class AbysmalHorror : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return Utility.RandomBool() ? WeaponAbility.MortalStrike : WeaponAbility.WhirlwindAttack;
}
public override WeaponAbility GetWeaponAbility() => Utility.RandomBool() ? WeaponAbility.MortalStrike : WeaponAbility.WhirlwindAttack;
public override bool IgnoreYoungProtection { get { return Core.ML; } }
public override string DefaultName => "an abysmal horror";
[Constructible]
public AbysmalHorror() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "an abysmal horror";
Body = 312;
BaseSoundID = 0x451;
@ -64,10 +62,10 @@ namespace Server.Mobiles
DemonKnight.DistributeArtifact( this );
}
public override bool BardImmune{ get{ return !Core.SE; } }
public override bool Unprovokable{ get{ return Core.SE; } }
public override bool BardImmune => !Core.SE;
public override bool Unprovokable => Core.SE;
public override bool AreaPeaceImmune { get { return Core.SE; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
public AbysmalHorror( Serial serial ) : base( serial )

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a bone demon corpse" )]
public class BoneDemon : BaseCreature
{
public override string DefaultName => "a bone demon";
[Constructible]
public BoneDemon() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a bone demon";
Body = 308;
BaseSoundID = 0x48D;
@ -53,7 +54,7 @@ namespace Server.Mobiles
public override bool BardImmune { get { return !Core.SE; } }
public override bool Unprovokable { get { return Core.SE; } }
public override bool AreaPeaceImmune { get { return Core.SE; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
public BoneDemon( Serial serial ) : base( serial )
@ -72,4 +73,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,15 +7,13 @@ namespace Server.Mobiles
[CorpseName( "a crystal elemental corpse" )]
public class CrystalElemental : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.BleedAttack;
}
public override WeaponAbility GetWeaponAbility() => WeaponAbility.BleedAttack;
public override string DefaultName => "a crystal elemental";
[Constructible]
public CrystalElemental() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a crystal elemental";
Body = 300;
BaseSoundID = 278;
@ -55,8 +53,8 @@ namespace Server.Mobiles
AddLoot( LootPack.Average );
}
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override bool BleedImmune => true;
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
public CrystalElemental( Serial serial ) : base( serial )
@ -75,4 +73,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -63,12 +63,12 @@ namespace Server.Mobiles
DemonKnight.DistributeArtifact( this );
}
public override bool BardImmune{ get{ return !Core.SE; } }
public override bool Unprovokable{ get{ return Core.SE; } }
public override bool BardImmune => !Core.SE;
public override bool Unprovokable => Core.SE;
public override bool AreaPeaceImmune { get { return Core.SE; } }
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison HitPoison{ get{ return Poison.Lethal; } }
public override bool BleedImmune => true;
public override Poison PoisonImmune => Poison.Lethal;
public override Poison HitPoison => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
@ -91,4 +91,4 @@ namespace Server.Mobiles
BaseSoundID = 0xE0;
}
}
}
}

View file

@ -9,50 +9,51 @@ namespace Server.Mobiles
[CorpseName( "a demon knight corpse" )]
public class DemonKnight : BaseCreature
{
public override bool IgnoreYoungProtection { get { return Core.ML; } }
public override bool IgnoreYoungProtection => Core.ML;
public static Type[] ArtifactRarity10 { get { return m_ArtifactRarity10; } }
public static Type[] ArtifactRarity11 { get { return m_ArtifactRarity11; } }
private static Type[] m_ArtifactRarity10 = new Type[]
{
typeof( LegacyOfTheDreadLord ),
typeof( TheTaskmaster )
};
public static Type[] ArtifactRarity10 => m_ArtifactRarity10;
public static Type[] ArtifactRarity11 => m_ArtifactRarity11;
private static Type[] m_ArtifactRarity11 = new Type[]
{
typeof( TheDragonSlayer ),
typeof( ArmorOfFortune ),
typeof( GauntletsOfNobility ),
typeof( HelmOfInsight ),
typeof( HolyKnightsBreastplate ),
typeof( JackalsCollar ),
typeof( LeggingsOfBane ),
typeof( MidnightBracers ),
typeof( OrnateCrownOfTheHarrower ),
typeof( ShadowDancerLeggings ),
typeof( TunicOfFire ),
typeof( VoiceOfTheFallenKing ),
typeof( BraceletOfHealth ),
typeof( OrnamentOfTheMagician ),
typeof( RingOfTheElements ),
typeof( RingOfTheVile ),
typeof( Aegis ),
typeof( ArcaneShield ),
typeof( AxeOfTheHeavens ),
typeof( BladeOfInsanity ),
typeof( BoneCrusher ),
typeof( BreathOfTheDead ),
typeof( Frostbringer ),
typeof( SerpentsFang ),
typeof( StaffOfTheMagi ),
typeof( TheBeserkersMaul ),
typeof( TheDryadBow ),
typeof( DivineCountenance ),
typeof( HatOfTheMagi ),
typeof( HuntersHeaddress ),
typeof( SpiritOfTheTotem )
};
private static Type[] m_ArtifactRarity10 =
{
typeof( LegacyOfTheDreadLord ),
typeof( TheTaskmaster )
};
private static Type[] m_ArtifactRarity11 =
{
typeof( TheDragonSlayer ),
typeof( ArmorOfFortune ),
typeof( GauntletsOfNobility ),
typeof( HelmOfInsight ),
typeof( HolyKnightsBreastplate ),
typeof( JackalsCollar ),
typeof( LeggingsOfBane ),
typeof( MidnightBracers ),
typeof( OrnateCrownOfTheHarrower ),
typeof( ShadowDancerLeggings ),
typeof( TunicOfFire ),
typeof( VoiceOfTheFallenKing ),
typeof( BraceletOfHealth ),
typeof( OrnamentOfTheMagician ),
typeof( RingOfTheElements ),
typeof( RingOfTheVile ),
typeof( Aegis ),
typeof( ArcaneShield ),
typeof( AxeOfTheHeavens ),
typeof( BladeOfInsanity ),
typeof( BoneCrusher ),
typeof( BreathOfTheDead ),
typeof( Frostbringer ),
typeof( SerpentsFang ),
typeof( StaffOfTheMagi ),
typeof( TheBeserkersMaul ),
typeof( TheDryadBow ),
typeof( DivineCountenance ),
typeof( HatOfTheMagi ),
typeof( HuntersHeaddress ),
typeof( SpiritOfTheTotem )
};
public static Item CreateRandomArtifact()
{
@ -214,10 +215,10 @@ namespace Server.Mobiles
AddLoot( LootPack.HighScrolls, Utility.RandomMinMax( 6, 60 ) );
}
public override bool BardImmune{ get{ return !Core.SE; } }
public override bool Unprovokable{ get{ return Core.SE; } }
public override bool BardImmune => !Core.SE;
public override bool Unprovokable => Core.SE;
public override bool AreaPeaceImmune { get { return Core.SE; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
@ -264,11 +265,12 @@ namespace Server.Mobiles
continue;
}
UnholyBone bone = new UnholyBone();
bone.Hue = 0;
bone.Name = "unholy bones";
bone.ItemID = Utility.Random( 0xECA, 9 );
UnholyBone bone = new UnholyBone
{
Hue = 0,
Name = "unholy bones",
ItemID = Utility.Random(0xECA, 9),
};
bone.MoveToWorld( new Point3D( x, y, z ), map );
}
@ -290,4 +292,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a devourer of souls corpse" )]
public class Devourer : BaseCreature
{
public override string DefaultName => "a devourer of souls";
[Constructible]
public Devourer() : base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a devourer of souls";
Body = 303;
BaseSoundID = 357;
@ -52,7 +53,7 @@ namespace Server.Mobiles
AddLoot( LootPack.FilthyRich, 2 );
}
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override int Meat{ get{ return 3; } }
@ -72,4 +73,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,15 +7,13 @@ namespace Server.Mobiles
[CorpseName( "a flesh golem corpse" )]
public class FleshGolem : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.BleedAttack;
}
public override WeaponAbility GetWeaponAbility() => WeaponAbility.BleedAttack;
public override string DefaultName => "a flesh golem";
[Constructible]
public FleshGolem() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a flesh golem";
Body = 304;
BaseSoundID = 684;
@ -50,7 +48,7 @@ namespace Server.Mobiles
AddLoot( LootPack.Average );
}
public override bool BleedImmune{ get{ return true; } }
public override bool BleedImmune => true;
public override int TreasureMapLevel{ get{ return 1; } }
public FleshGolem( Serial serial ) : base( serial )
@ -69,4 +67,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,17 +7,15 @@ namespace Server.Mobiles
[CorpseName( "a fleshrenderer corpse" )]
public class FleshRenderer : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return Utility.RandomBool() ? WeaponAbility.Dismount : WeaponAbility.ParalyzingBlow;
}
public override WeaponAbility GetWeaponAbility() => Utility.RandomBool() ? WeaponAbility.Dismount : WeaponAbility.ParalyzingBlow;
public override bool IgnoreYoungProtection { get { return Core.ML; } }
public override string DefaultName => "a fleshrenderer";
[Constructible]
public FleshRenderer() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a fleshrenderer";
Body = 315;
SetStr( 401, 460 );
@ -62,11 +60,11 @@ namespace Server.Mobiles
DemonKnight.DistributeArtifact( this );
}
public override bool AutoDispel{ get{ return true; } }
public override bool AutoDispel => true;
public override bool BardImmune { get { return !Core.SE; } }
public override bool Unprovokable { get { return Core.SE; } }
public override bool AreaPeaceImmune { get { return Core.SE; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
@ -114,4 +112,4 @@ namespace Server.Mobiles
BaseSoundID = -1;
}
}
}
}

View file

@ -7,15 +7,13 @@ namespace Server.Mobiles
[CorpseName( "a gibberling corpse" )]
public class Gibberling : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.Dismount;
}
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
public override string DefaultName => "a gibberling";
[Constructible]
public Gibberling() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a gibberling";
Body = 307;
BaseSoundID = 422;
@ -70,4 +68,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a gore fiend corpse" )]
public class GoreFiend : BaseCreature
{
public override string DefaultName => "a gore fiend";
[Constructible]
public GoreFiend() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a gore fiend";
Body = 305;
BaseSoundID = 224;
@ -51,7 +52,7 @@ namespace Server.Mobiles
return 1218;
}
public override bool BleedImmune{ get{ return true; } }
public override bool BleedImmune => true;
public GoreFiend( Serial serial ) : base( serial )
{
@ -69,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,10 +7,7 @@ namespace Server.Mobiles
[CorpseName( "an impaler corpse" )]
public class Impaler : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return Utility.RandomBool() ? WeaponAbility.MortalStrike : WeaponAbility.BleedAttack;
}
public override WeaponAbility GetWeaponAbility() => Utility.RandomBool() ? WeaponAbility.MortalStrike : WeaponAbility.BleedAttack;
public override bool IgnoreYoungProtection { get { return Core.ML; } }
@ -63,12 +60,12 @@ namespace Server.Mobiles
DemonKnight.DistributeArtifact( this );
}
public override bool AutoDispel{ get{ return true; } }
public override bool BardImmune{ get{ return !Core.SE; } }
public override bool Unprovokable{ get{ return Core.SE; } }
public override bool AutoDispel => true;
public override bool BardImmune => !Core.SE;
public override bool Unprovokable => Core.SE;
public override bool AreaPeaceImmune { get { return Core.SE; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison HitPoison{ get{ return (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly); } }
public override Poison PoisonImmune => Poison.Lethal;
public override Poison HitPoison => (0.8 >= Utility.RandomDouble() ? Poison.Greater : Poison.Deadly);
public override int TreasureMapLevel{ get{ return 1; } }
@ -91,4 +88,4 @@ namespace Server.Mobiles
BaseSoundID = 0x2A7;
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a maggoty corpse" )] // TODO: Corpse name?
public class MoundOfMaggots : BaseCreature
{
public override string DefaultName => "a mound of maggots";
[Constructible]
public MoundOfMaggots() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a mound of maggots";
Body = 319;
BaseSoundID = 898;
@ -43,7 +44,7 @@ namespace Server.Mobiles
AddLoot( LootPack.Gems );
}
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
@ -63,4 +64,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,15 +7,13 @@ namespace Server.Mobiles
[CorpseName( "a patchwork skeletal corpse" )]
public class PatchworkSkeleton : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.Dismount;
}
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
public override string DefaultName => "a patchwork skeleton";
[Constructible]
public PatchworkSkeleton() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a patchwork skeleton";
Body = 309;
BaseSoundID = 0x48D;
@ -51,8 +49,8 @@ namespace Server.Mobiles
AddLoot( LootPack.Meager );
}
public override bool BleedImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override bool BleedImmune => true;
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
@ -72,4 +70,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,15 +7,13 @@ namespace Server.Mobiles
[CorpseName( "a ravager corpse" )]
public class Ravager : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return Utility.RandomBool() ? WeaponAbility.Dismount : WeaponAbility.CrushingBlow;
}
public override WeaponAbility GetWeaponAbility() => Utility.RandomBool() ? WeaponAbility.Dismount : WeaponAbility.CrushingBlow;
public override string DefaultName => "a ravager";
[Constructible]
public Ravager() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a ravager";
Body = 314;
BaseSoundID = 357;
@ -66,4 +64,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -16,14 +16,15 @@ namespace Server.Mobiles
}
public override Mobile ConstantFocus{ get{ return m_Target; } }
public override bool NoHouseRestrictions{ get{ return true; } }
public override bool NoHouseRestrictions => true;
public override double DispelDifficulty{ get{ return 80.0; } }
public override double DispelFocus{ get{ return 20.0; } }
public override string DefaultName => "a revenant";
public Revenant( Mobile caster, Mobile target, TimeSpan duration ) : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.18, 0.36 )
{
Name = "a revenant";
Body = 400;
Hue = 1;
// TODO: Sound values?
@ -78,11 +79,11 @@ namespace Server.Mobiles
AddItem( weapon );
}
public override bool AlwaysMurderer{ get{ return true; } }
public override bool AlwaysMurderer => true;
public override bool BleedImmune{ get{ return true; } }
public override bool BardImmune{ get{ return true; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override bool BleedImmune => true;
public override bool BardImmune => true;
public override Poison PoisonImmune => Poison.Lethal;
public override void OnThink()
{
@ -180,4 +181,4 @@ namespace Server.Mobiles
Delete();
}
}
}
}

View file

@ -7,10 +7,7 @@ namespace Server.Mobiles
[CorpseName( "a shadow knight corpse" )]
public class ShadowKnight : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return Utility.RandomBool() ? WeaponAbility.ConcussionBlow : WeaponAbility.CrushingBlow;
}
public override WeaponAbility GetWeaponAbility() => Utility.RandomBool() ? WeaponAbility.ConcussionBlow : WeaponAbility.CrushingBlow;
public override bool IgnoreYoungProtection { get { return Core.ML; } }
@ -167,10 +164,10 @@ namespace Server.Mobiles
base.OnThink();
}
public override bool BardImmune{ get{ return !Core.SE; } }
public override bool Unprovokable{ get{ return Core.SE; } }
public override bool AreaPeaceImmune{ get{ return Core.SE; } }
public override Poison PoisonImmune{ get{ return Poison.Lethal; } }
public override bool BardImmune => !Core.SE;
public override bool Unprovokable => Core.SE;
public override bool AreaPeaceImmune => Core.SE;
public override Poison PoisonImmune => Poison.Lethal;
public override int TreasureMapLevel{ get{ return 1; } }
@ -193,4 +190,4 @@ namespace Server.Mobiles
BaseSoundID = -1;
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a skittering hopper corpse" )]
public class SkitteringHopper : BaseCreature
{
public override string DefaultName => "a skittering hopper";
[Constructible]
public SkitteringHopper() : base( AIType.AI_Melee, FightMode.Aggressor, 10, 1, 0.2, 0.4 )
{
Name = "a skittering hopper";
Body = 302;
BaseSoundID = 959;
@ -65,4 +66,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -7,15 +7,13 @@ namespace Server.Mobiles
[CorpseName( "a treefellow corpse" )]
public class Treefellow : BaseCreature
{
public override WeaponAbility GetWeaponAbility()
{
return WeaponAbility.Dismount;
}
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
public override string DefaultName => "a treefellow";
[Constructible]
public Treefellow() : base( AIType.AI_Melee, FightMode.Evil, 10, 1, 0.2, 0.4 )
{
Name = "a treefellow";
Body = 301;
SetStr( 196, 220 );
@ -64,7 +62,7 @@ namespace Server.Mobiles
return 672;
}
public override bool BleedImmune{ get{ return true; } }
public override bool BleedImmune => true;
public override void GenerateLoot()
{
@ -90,4 +88,4 @@ namespace Server.Mobiles
BaseSoundID = -1;
}
}
}
}

View file

@ -7,10 +7,11 @@ namespace Server.Mobiles
[CorpseName( "a vampire bat corpse" )]
public class VampireBat : BaseCreature
{
public override string DefaultName => "a vampire bat";
[Constructible]
public VampireBat() : base( AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4 )
{
Name = "a vampire bat";
Body = 317;
BaseSoundID = 0x270;
@ -67,4 +68,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

Some files were not shown because too many files have changed in this diff Show more