Add DefaultName property to Mobiles & Items (#18)
This commit is contained in:
parent
b06f5bf60d
commit
8ee42c8ea2
713 changed files with 5112 additions and 4987 deletions
|
|
@ -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
|
|||
} )
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 )
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Add table
Add a link
Reference in a new issue