fix: Changes on Animals to use code generation (#1306)
This commit is contained in:
parent
7a1d5131c8
commit
6eebf358da
176 changed files with 1177 additions and 2479 deletions
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Bear")]
|
||||
public class BlackBear : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class BlackBear : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public BlackBear() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 35.1;
|
||||
}
|
||||
|
||||
public BlackBear(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bear corpse";
|
||||
public override string DefaultName => "a black bear";
|
||||
|
||||
|
|
@ -49,19 +48,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 12;
|
||||
public override FoodType FavoriteFood => FoodType.Fish | FoodType.Meat | FoodType.FruitsAndVegies;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Bear;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class BrownBear : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class BrownBear : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public BrownBear() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -37,10 +40,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 41.1;
|
||||
}
|
||||
|
||||
public BrownBear(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bear corpse";
|
||||
public override string DefaultName => "a brown bear";
|
||||
|
||||
|
|
@ -48,19 +47,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 12;
|
||||
public override FoodType FavoriteFood => FoodType.Fish | FoodType.FruitsAndVegies | FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Bear;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Grizzlybear")]
|
||||
public class GrizzlyBear : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class GrizzlyBear : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GrizzlyBear() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -39,10 +42,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 59.1;
|
||||
}
|
||||
|
||||
public GrizzlyBear(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a grizzly bear corpse";
|
||||
public override string DefaultName => "a grizzly bear";
|
||||
|
||||
|
|
@ -50,19 +49,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 16;
|
||||
public override FoodType FavoriteFood => FoodType.Fish | FoodType.FruitsAndVegies | FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Bear;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Polarbear")]
|
||||
public class PolarBear : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class PolarBear : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public PolarBear() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -39,10 +42,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 35.1;
|
||||
}
|
||||
|
||||
public PolarBear(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a polar bear corpse";
|
||||
public override string DefaultName => "a polar bear";
|
||||
|
||||
|
|
@ -50,19 +49,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 16;
|
||||
public override FoodType FavoriteFood => FoodType.Fish | FoodType.FruitsAndVegies | FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Bear;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Chicken : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Chicken : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Chicken() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -35,10 +38,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -0.9;
|
||||
}
|
||||
|
||||
public Chicken(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a chicken corpse";
|
||||
public override string DefaultName => "a chicken";
|
||||
|
||||
|
|
@ -48,19 +47,5 @@ namespace Server.Mobiles
|
|||
public override bool CanFly => true;
|
||||
|
||||
public override int Feathers => 25;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Crane : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Crane : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Crane() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -31,10 +34,6 @@ namespace Server.Mobiles
|
|||
VirtualArmor = 5;
|
||||
}
|
||||
|
||||
public Crane(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bird corpse";
|
||||
public override string DefaultName => "a crane";
|
||||
|
||||
|
|
@ -50,19 +49,5 @@ namespace Server.Mobiles
|
|||
public override int GetHurtSound() => 0x4DA;
|
||||
|
||||
public override int GetDeathSound() => 0x4D6;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Eagle : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Eagle : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Eagle() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -39,10 +42,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 17.1;
|
||||
}
|
||||
|
||||
public Eagle(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bird corpse";
|
||||
public override string DefaultName => "an eagle";
|
||||
|
||||
|
|
@ -51,19 +50,5 @@ namespace Server.Mobiles
|
|||
public override int Feathers => 36;
|
||||
public override FoodType FavoriteFood => FoodType.Meat | FoodType.Fish;
|
||||
public override bool CanFly => true;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Phoenix : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Phoenix : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Phoenix() : base(AIType.AI_Mage, FightMode.Aggressor)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
VirtualArmor = 60;
|
||||
}
|
||||
|
||||
public Phoenix(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a phoenix corpse";
|
||||
public override string DefaultName => "a phoenix";
|
||||
|
||||
|
|
@ -55,17 +54,5 @@ namespace Server.Mobiles
|
|||
AddLoot(LootPack.FilthyRich);
|
||||
AddLoot(LootPack.Rich);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Direwolf")]
|
||||
public class DireWolf : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class DireWolf : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public DireWolf() : base(AIType.AI_Melee)
|
||||
|
|
@ -40,10 +43,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 83.1;
|
||||
}
|
||||
|
||||
public DireWolf(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a dire wolf corpse";
|
||||
public override string DefaultName => "a dire wolf";
|
||||
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
public override HideType HideType => HideType.Spined;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Canine;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Greywolf")]
|
||||
public class GreyWolf : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class GreyWolf : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GreyWolf() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -40,10 +43,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 53.1;
|
||||
}
|
||||
|
||||
public GreyWolf(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a grey wolf corpse";
|
||||
public override string DefaultName => "a grey wolf";
|
||||
|
||||
|
|
@ -51,19 +50,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 6;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Canine;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Timberwolf")]
|
||||
public class TimberWolf : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class TimberWolf : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public TimberWolf() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -40,10 +43,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 23.1;
|
||||
}
|
||||
|
||||
public TimberWolf(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a timber wolf corpse";
|
||||
public override string DefaultName => "a timber wolf";
|
||||
|
||||
|
|
@ -51,19 +50,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 5;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Canine;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Whitewolf")]
|
||||
public class WhiteWolf : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class WhiteWolf : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public WhiteWolf() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -40,10 +43,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 65.1;
|
||||
}
|
||||
|
||||
public WhiteWolf(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a white wolf corpse";
|
||||
public override string DefaultName => "a white wolf";
|
||||
|
||||
|
|
@ -51,19 +50,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 6;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Canine;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Bull : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Bull : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Bull() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -41,10 +44,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 71.1;
|
||||
}
|
||||
|
||||
public Bull(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bull corpse";
|
||||
public override string DefaultName => "a bull";
|
||||
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 15;
|
||||
public override FoodType FavoriteFood => FoodType.GrainsAndHay;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Bull;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,20 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Cow : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Cow : BaseCreature
|
||||
{
|
||||
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableField(0)]
|
||||
public DateTime _milkedOn;
|
||||
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableField(1)]
|
||||
public int _milk;
|
||||
|
||||
[Constructible]
|
||||
public Cow() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
{
|
||||
|
|
@ -44,18 +55,7 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
public Cow(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a cow corpse";
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DateTime MilkedOn { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int Milk { get; set; }
|
||||
|
||||
public override string DefaultName => "a cow";
|
||||
|
||||
public override int Meat => 8;
|
||||
|
|
@ -119,28 +119,5 @@ namespace Server.Mobiles
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1);
|
||||
|
||||
writer.Write(MilkedOn);
|
||||
writer.Write(Milk);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (version > 0)
|
||||
{
|
||||
MilkedOn = reader.ReadDateTime();
|
||||
Milk = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Cougar : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Cougar : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Cougar() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 41.1;
|
||||
}
|
||||
|
||||
public Cougar(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a cougar corpse";
|
||||
public override string DefaultName => "a cougar";
|
||||
|
||||
|
|
@ -49,19 +48,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 10;
|
||||
public override FoodType FavoriteFood => FoodType.Fish | FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Feline;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Hellcat")]
|
||||
public class HellCat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class HellCat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public HellCat() : base(AIType.AI_Melee)
|
||||
|
|
@ -39,10 +42,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 71.1;
|
||||
}
|
||||
|
||||
public HellCat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a hell cat corpse";
|
||||
public override string DefaultName => "a hell cat";
|
||||
|
||||
|
|
@ -58,19 +57,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Panther : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Panther : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Panther() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -39,10 +42,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 53.1;
|
||||
}
|
||||
|
||||
public Panther(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a panther corpse";
|
||||
public override string DefaultName => "a panther";
|
||||
|
||||
|
|
@ -50,19 +49,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 10;
|
||||
public override FoodType FavoriteFood => FoodType.Meat | FoodType.Fish;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Feline;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Preditorhellcat")]
|
||||
public class PredatorHellCat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class PredatorHellCat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public PredatorHellCat() : base(AIType.AI_Melee)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 89.1;
|
||||
}
|
||||
|
||||
public PredatorHellCat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a hell cat corpse";
|
||||
public override string DefaultName => "a hell cat";
|
||||
public override int Hides => 10;
|
||||
|
|
@ -56,19 +55,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Average);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Snowleopard")]
|
||||
public class SnowLeopard : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SnowLeopard : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public SnowLeopard() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -40,10 +43,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 53.1;
|
||||
}
|
||||
|
||||
public SnowLeopard(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a leopard corpse";
|
||||
public override string DefaultName => "a snow leopard";
|
||||
|
||||
|
|
@ -51,19 +50,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 8;
|
||||
public override FoodType FavoriteFood => FoodType.Meat | FoodType.Fish;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Feline;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Boar : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Boar : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Boar() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -37,28 +40,10 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public Boar(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a pig corpse";
|
||||
public override string DefaultName => "a boar";
|
||||
|
||||
public override int Meat => 2;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Bullfrog")]
|
||||
public class BullFrog : BaseCreature
|
||||
[SerializationGenerator(0,false)]
|
||||
public partial class BullFrog : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public BullFrog() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -37,10 +40,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 23.1;
|
||||
}
|
||||
|
||||
public BullFrog(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bull frog corpse";
|
||||
public override string DefaultName => "a bull frog";
|
||||
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Dolphin : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Dolphin : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Dolphin()
|
||||
|
|
@ -37,11 +40,6 @@ namespace Server.Mobiles
|
|||
CantWalk = true;
|
||||
}
|
||||
|
||||
public Dolphin(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a dolphin corpse";
|
||||
public override string DefaultName => "a dolphin";
|
||||
|
||||
|
|
@ -76,19 +74,5 @@ namespace Server.Mobiles
|
|||
|
||||
base.OnThink();
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Gaman : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Gaman : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Gaman() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -38,10 +40,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 68.7;
|
||||
}
|
||||
|
||||
public Gaman(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a gaman corpse";
|
||||
public override string DefaultName => "a gaman";
|
||||
|
||||
|
|
@ -64,17 +62,5 @@ namespace Server.Mobiles
|
|||
base.OnDeath(c);
|
||||
c.DropItem(new GamanHorns(Utility.RandomBool() ? 1 : 2));
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Gianttoad")]
|
||||
public class GiantToad : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class GiantToad : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GiantToad() : base(AIType.AI_Melee)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 77.1;
|
||||
}
|
||||
|
||||
public GiantToad(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a giant toad corpse";
|
||||
public override string DefaultName => "a giant toad";
|
||||
|
||||
|
|
@ -53,24 +52,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
if (version < 1)
|
||||
{
|
||||
AI = AIType.AI_Melee;
|
||||
FightMode = FightMode.Closest;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Goat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Goat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Goat() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -35,29 +38,11 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 11.1;
|
||||
}
|
||||
|
||||
public Goat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a goat corpse";
|
||||
public override string DefaultName => "a goat";
|
||||
|
||||
public override int Meat => 2;
|
||||
public override int Hides => 8;
|
||||
public override FoodType FavoriteFood => FoodType.GrainsAndHay | FoodType.FruitsAndVegies;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Gorilla : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Gorilla : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Gorilla() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -37,29 +40,11 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -18.9;
|
||||
}
|
||||
|
||||
public Gorilla(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a gorilla corpse";
|
||||
public override string DefaultName => "a gorilla";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override int Hides => 6;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Greathart")]
|
||||
public class GreatHart : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class GreatHart : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GreatHart() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -36,10 +39,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 59.1;
|
||||
}
|
||||
|
||||
public GreatHart(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a deer corpse";
|
||||
public override string DefaultName => "a great hart";
|
||||
|
||||
|
|
@ -52,19 +51,6 @@ namespace Server.Mobiles
|
|||
public override int GetHurtSound() => 0x83;
|
||||
|
||||
public override int GetDeathSound() => 0x84;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Hind : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Hind : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Hind() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -35,10 +38,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 23.1;
|
||||
}
|
||||
|
||||
public Hind(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a deer corpse";
|
||||
public override string DefaultName => "a hind";
|
||||
|
||||
|
|
@ -51,19 +50,5 @@ namespace Server.Mobiles
|
|||
public override int GetHurtSound() => 0x83;
|
||||
|
||||
public override int GetDeathSound() => 0x84;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Llama : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Llama : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Llama() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -35,29 +38,11 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 35.1;
|
||||
}
|
||||
|
||||
public Llama(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a llama corpse";
|
||||
public override string DefaultName => "a llama";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override int Hides => 12;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class MountainGoat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class MountainGoat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public MountainGoat() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -39,29 +42,11 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -0.9;
|
||||
}
|
||||
|
||||
public MountainGoat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a mountain goat corpse";
|
||||
public override string DefaultName => "a mountain goat";
|
||||
|
||||
public override int Meat => 2;
|
||||
public override int Hides => 12;
|
||||
public override FoodType FavoriteFood => FoodType.GrainsAndHay | FoodType.FruitsAndVegies;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using ModernUO.Serialization;
|
||||
using System.Collections.Generic;
|
||||
using Server.ContextMenus;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class PackHorse : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class PackHorse : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public PackHorse() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -53,10 +55,6 @@ namespace Server.Mobiles
|
|||
AddItem(pack);
|
||||
}
|
||||
|
||||
public PackHorse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a horse corpse";
|
||||
public override string DefaultName => "a pack horse";
|
||||
|
||||
|
|
@ -64,20 +62,6 @@ namespace Server.Mobiles
|
|||
public override int Hides => 10;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override bool OnBeforeDeath()
|
||||
{
|
||||
if (!base.OnBeforeDeath())
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using ModernUO.Serialization;
|
||||
using System.Collections.Generic;
|
||||
using Server.ContextMenus;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class PackLlama : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class PackLlama : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public PackLlama() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -53,30 +55,12 @@ namespace Server.Mobiles
|
|||
AddItem(pack);
|
||||
}
|
||||
|
||||
public PackLlama(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a llama corpse";
|
||||
public override string DefaultName => "a pack llama";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override bool OnBeforeDeath()
|
||||
{
|
||||
if (!base.OnBeforeDeath())
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Pig : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Pig : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Pig() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -35,28 +38,10 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 11.1;
|
||||
}
|
||||
|
||||
public Pig(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a pig corpse";
|
||||
public override string DefaultName => "a pig";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Sheep : BaseCreature, ICarvable
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Sheep : BaseCreature, ICarvable
|
||||
{
|
||||
private DateTime m_NextWoolTime;
|
||||
|
||||
[Constructible]
|
||||
public Sheep() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
{
|
||||
|
|
@ -41,23 +42,24 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 11.1;
|
||||
}
|
||||
|
||||
public Sheep(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a sheep corpse";
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableProperty(0)]
|
||||
public DateTime NextWoolTime
|
||||
{
|
||||
get => m_NextWoolTime;
|
||||
get => _nextWoolTime;
|
||||
set
|
||||
{
|
||||
m_NextWoolTime = value;
|
||||
Body = Core.Now >= m_NextWoolTime ? 0xCF : 0xDF;
|
||||
_nextWoolTime = value;
|
||||
SheepBody();
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void SheepBody() => Body = Core.Now >= _nextWoolTime ? 0xCF : 0xDF;
|
||||
|
||||
public override string DefaultName => "a sheep";
|
||||
|
||||
public override int Meat => 3;
|
||||
|
|
@ -68,7 +70,7 @@ namespace Server.Mobiles
|
|||
|
||||
public void Carve(Mobile from, Item item)
|
||||
{
|
||||
if (Core.Now < m_NextWoolTime)
|
||||
if (Core.Now < _nextWoolTime)
|
||||
{
|
||||
// This sheep is not yet ready to be shorn.
|
||||
PrivateOverheadMessage(MessageType.Regular, 0x3B2, 500449, from.NetState);
|
||||
|
|
@ -84,32 +86,13 @@ namespace Server.Mobiles
|
|||
public override void OnThink()
|
||||
{
|
||||
base.OnThink();
|
||||
Body = Core.Now >= m_NextWoolTime ? 0xCF : 0xDF;
|
||||
SheepBody();
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
[AfterDeserialization]
|
||||
private void AfterDeserialization()
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1);
|
||||
|
||||
writer.WriteDeltaTime(m_NextWoolTime);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
NextWoolTime = reader.ReadDeltaTime();
|
||||
break;
|
||||
}
|
||||
}
|
||||
SheepBody();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Walrus : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Walrus : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Walrus() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -39,29 +42,11 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 35.1;
|
||||
}
|
||||
|
||||
public Walrus(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a walrus corpse";
|
||||
public override string DefaultName => "a walrus";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override int Hides => 12;
|
||||
public override FoodType FavoriteFood => FoodType.Fish;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Multis;
|
||||
|
|
@ -6,10 +7,9 @@ using Server.Targeting;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public abstract class BaseMount : BaseCreature, IMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public abstract partial class BaseMount : BaseCreature, IMount
|
||||
{
|
||||
private Mobile m_Rider;
|
||||
|
||||
public BaseMount(
|
||||
int bodyID, int itemID, AIType aiType, FightMode fightMode = FightMode.Closest,
|
||||
int rangePerception = 10, int rangeFight = 1
|
||||
|
|
@ -20,17 +20,15 @@ namespace Server.Mobiles
|
|||
InternalItem = new MountItem(this, itemID);
|
||||
}
|
||||
|
||||
public BaseMount(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual TimeSpan MountAbilityDelay => TimeSpan.Zero;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public DateTime NextMountAbility { get; set; }
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableField(0)]
|
||||
public DateTime _nextMountAbility;
|
||||
|
||||
protected Item InternalItem { get; private set; }
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableField(2)]
|
||||
protected Item _internalItem;
|
||||
|
||||
public virtual bool AllowMaleRider => true;
|
||||
public virtual bool AllowFemaleRider => true;
|
||||
|
|
@ -65,25 +63,26 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableProperty(1)]
|
||||
public Mobile Rider
|
||||
{
|
||||
get => m_Rider;
|
||||
get => _rider;
|
||||
set
|
||||
{
|
||||
if (m_Rider != value)
|
||||
if (_rider != value)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
var loc = m_Rider.Location;
|
||||
var map = m_Rider.Map;
|
||||
var loc = _rider.Location;
|
||||
var map = _rider.Map;
|
||||
|
||||
if (map == null || map == Map.Internal)
|
||||
{
|
||||
loc = m_Rider.LogoutLocation;
|
||||
map = m_Rider.LogoutMap;
|
||||
loc = _rider.LogoutLocation;
|
||||
map = _rider.LogoutMap;
|
||||
}
|
||||
|
||||
Direction = m_Rider.Direction;
|
||||
Direction = _rider.Direction;
|
||||
Location = loc;
|
||||
Map = map;
|
||||
|
||||
|
|
@ -91,9 +90,9 @@ namespace Server.Mobiles
|
|||
}
|
||||
else
|
||||
{
|
||||
if (m_Rider != null)
|
||||
if (_rider != null)
|
||||
{
|
||||
Dismount(m_Rider);
|
||||
Dismount(_rider);
|
||||
}
|
||||
|
||||
Dismount(value);
|
||||
|
|
@ -113,21 +112,22 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
m_Rider = value;
|
||||
_rider = value;
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void OnRiderDamaged(int amount, Mobile from, bool willKill)
|
||||
{
|
||||
if (m_Rider == null)
|
||||
if (_rider == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var attacker = from ?? m_Rider.FindMostRecentDamager(true);
|
||||
var attacker = from ?? _rider.FindMostRecentDamager(true);
|
||||
|
||||
if (!(attacker == this || attacker == m_Rider || willKill || Core.Now < NextMountAbility)
|
||||
if (!(attacker == this || attacker == _rider || willKill || Core.Now < NextMountAbility)
|
||||
&& DoMountAbility(amount, from))
|
||||
{
|
||||
NextMountAbility = Core.Now + MountAbilityDelay;
|
||||
|
|
@ -155,43 +155,12 @@ namespace Server.Mobiles
|
|||
base.OnDelete();
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
[AfterDeserialization(false)]
|
||||
private void AfterDeserialize()
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1); // version
|
||||
|
||||
writer.Write(NextMountAbility);
|
||||
|
||||
writer.Write(m_Rider);
|
||||
writer.Write(InternalItem);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
if (InternalItem == null)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
NextMountAbility = reader.ReadDateTime();
|
||||
goto case 0;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
m_Rider = reader.ReadEntity<Mobile>();
|
||||
InternalItem = reader.ReadEntity<Item>();
|
||||
|
||||
if (InternalItem == null)
|
||||
{
|
||||
Delete();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
Delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -327,72 +296,48 @@ namespace Server.Mobiles
|
|||
public virtual bool DoMountAbility(int damage, Mobile attacker) => false;
|
||||
}
|
||||
|
||||
public class MountItem : Item, IMountItem
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class MountItem : Item, IMountItem
|
||||
{
|
||||
private BaseMount m_Mount;
|
||||
private BaseMount _mount;
|
||||
|
||||
public MountItem(BaseMount mount, int itemID) : base(itemID)
|
||||
{
|
||||
Layer = Layer.Mount;
|
||||
Movable = false;
|
||||
|
||||
m_Mount = mount;
|
||||
}
|
||||
|
||||
public MountItem(Serial serial) : base(serial)
|
||||
{
|
||||
_mount = mount;
|
||||
}
|
||||
|
||||
public override double DefaultWeight => 0;
|
||||
|
||||
public IMount Mount => m_Mount;
|
||||
[SerializableProperty(0, useField: nameof(_mount))]
|
||||
public IMount Mount => _mount;
|
||||
|
||||
public override void OnAfterDelete()
|
||||
{
|
||||
m_Mount?.Delete();
|
||||
m_Mount = null;
|
||||
_mount?.Delete();
|
||||
_mount = null;
|
||||
|
||||
base.OnAfterDelete();
|
||||
}
|
||||
|
||||
public override DeathMoveResult OnParentDeath(Mobile parent)
|
||||
{
|
||||
if (m_Mount != null)
|
||||
if (_mount != null)
|
||||
{
|
||||
m_Mount.Rider = null;
|
||||
_mount.Rider = null;
|
||||
}
|
||||
|
||||
return DeathMoveResult.RemainEquipped;
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
[AfterDeserialization(false)]
|
||||
private void AfterDeserialize()
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
|
||||
writer.Write(m_Mount);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
if (_mount == null)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
m_Mount = reader.ReadEntity<BaseMount>();
|
||||
|
||||
if (m_Mount == null)
|
||||
{
|
||||
Delete();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
Delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using ModernUO.Serialization;
|
||||
using System.Collections.Generic;
|
||||
using Server.ContextMenus;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Beetle : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Beetle : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a giant beetle";
|
||||
|
||||
|
|
@ -48,10 +50,6 @@ namespace Server.Mobiles
|
|||
AddItem(pack);
|
||||
}
|
||||
|
||||
public Beetle(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a giant beetle corpse";
|
||||
public virtual double BoostedSpeed => 0.1;
|
||||
|
||||
|
|
@ -86,20 +84,6 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
|
||||
public override bool OnBeforeDeath()
|
||||
{
|
||||
if (!base.OnBeforeDeath())
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class DesertOstard : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class DesertOstard : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a desert ostard";
|
||||
|
||||
|
|
@ -35,28 +38,10 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public DesertOstard(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "an ostard corpse";
|
||||
|
||||
public override int Meat => 3;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Ostard;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Engines.VeteranRewards;
|
||||
using Server.Multis;
|
||||
|
|
@ -5,75 +6,67 @@ using Server.Spells;
|
|||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class EtherealMount : Item, IMount, IMountItem, IRewardItem
|
||||
[SerializationGenerator(3, false)]
|
||||
public partial class EtherealMount : Item, IMount, IMountItem, IRewardItem
|
||||
{
|
||||
private bool m_IsDonationItem;
|
||||
private int m_MountedID;
|
||||
private int m_RegularID;
|
||||
private Mobile m_Rider;
|
||||
[SerializableField(0)]
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster, AccessLevel.Administrator)]
|
||||
public bool _isDonationItem;
|
||||
|
||||
[SerializableField(1)]
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
public bool _isRewardItem;
|
||||
|
||||
[Constructible]
|
||||
public EtherealMount(int itemID, int mountID) : base(itemID)
|
||||
{
|
||||
m_MountedID = mountID;
|
||||
m_RegularID = itemID;
|
||||
m_Rider = null;
|
||||
_mountedID = mountID;
|
||||
_regularID = itemID;
|
||||
_rider = null;
|
||||
|
||||
Layer = Layer.Invalid;
|
||||
|
||||
LootType = LootType.Blessed;
|
||||
}
|
||||
|
||||
public EtherealMount(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override double DefaultWeight => 1.0;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster, AccessLevel.Administrator)]
|
||||
public bool IsDonationItem
|
||||
{
|
||||
get => m_IsDonationItem;
|
||||
set
|
||||
{
|
||||
m_IsDonationItem = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[SerializableProperty(2)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int MountedID
|
||||
{
|
||||
get => m_MountedID;
|
||||
get => _mountedID;
|
||||
set
|
||||
{
|
||||
if (m_MountedID != value)
|
||||
if (_mountedID != value)
|
||||
{
|
||||
m_MountedID = value;
|
||||
_mountedID = value;
|
||||
|
||||
if (m_Rider != null)
|
||||
if (_rider != null)
|
||||
{
|
||||
ItemID = value;
|
||||
}
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[SerializableProperty(3)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int RegularID
|
||||
{
|
||||
get => m_RegularID;
|
||||
get => _regularID;
|
||||
set
|
||||
{
|
||||
if (m_RegularID != value)
|
||||
if (_regularID != value)
|
||||
{
|
||||
m_RegularID = value;
|
||||
_regularID = value;
|
||||
|
||||
if (m_Rider == null)
|
||||
if (_rider == null)
|
||||
{
|
||||
ItemID = value;
|
||||
}
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -84,13 +77,14 @@ namespace Server.Mobiles
|
|||
|
||||
public virtual int EtherealHue => 0x4001;
|
||||
|
||||
[SerializableProperty(4)]
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public Mobile Rider
|
||||
{
|
||||
get => m_Rider;
|
||||
get => _rider;
|
||||
set
|
||||
{
|
||||
if (value != m_Rider)
|
||||
if (value != _rider)
|
||||
{
|
||||
if (value == null)
|
||||
{
|
||||
|
|
@ -98,23 +92,25 @@ namespace Server.Mobiles
|
|||
UnmountMe();
|
||||
|
||||
RemoveFollowers();
|
||||
m_Rider = null;
|
||||
_rider = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_Rider != null)
|
||||
if (_rider != null)
|
||||
{
|
||||
Dismount(m_Rider);
|
||||
Dismount(_rider);
|
||||
}
|
||||
|
||||
Dismount(value);
|
||||
|
||||
RemoveFollowers();
|
||||
m_Rider = value;
|
||||
_rider = value;
|
||||
AddFollowers();
|
||||
|
||||
MountMe();
|
||||
}
|
||||
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -125,14 +121,11 @@ namespace Server.Mobiles
|
|||
|
||||
public IMount Mount => this;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool IsRewardItem { get; set; }
|
||||
|
||||
public override void GetProperties(IPropertyList list)
|
||||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (m_IsDonationItem)
|
||||
if (_isDonationItem)
|
||||
{
|
||||
list.Add("Donation Ethereal");
|
||||
list.Add("7.5 sec slower cast time if not a 9mo. Veteran");
|
||||
|
|
@ -146,17 +139,17 @@ namespace Server.Mobiles
|
|||
|
||||
public void RemoveFollowers()
|
||||
{
|
||||
if (m_Rider != null)
|
||||
if (_rider != null)
|
||||
{
|
||||
m_Rider.Followers -= Math.Min(m_Rider.Followers, FollowerSlots);
|
||||
_rider.Followers -= Math.Min(_rider.Followers, FollowerSlots);
|
||||
}
|
||||
}
|
||||
|
||||
public void AddFollowers()
|
||||
{
|
||||
if (m_Rider != null)
|
||||
if (_rider != null)
|
||||
{
|
||||
m_Rider.Followers += FollowerSlots;
|
||||
_rider.Followers += FollowerSlots;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -212,66 +205,26 @@ namespace Server.Mobiles
|
|||
{
|
||||
base.OnSingleClick(from);
|
||||
|
||||
LabelTo(from, m_IsDonationItem ? "Donation Ethereal" : "Veteran Reward");
|
||||
LabelTo(from, _isDonationItem ? "Donation Ethereal" : "Veteran Reward");
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
private void Deserialize(IGenericReader reader, int version)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(3); // version
|
||||
|
||||
writer.Write(m_IsDonationItem);
|
||||
writer.Write(IsRewardItem);
|
||||
|
||||
writer.Write(m_MountedID);
|
||||
writer.Write(m_RegularID);
|
||||
writer.Write(m_Rider);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
LootType = LootType.Blessed;
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
_isDonationItem = reader.ReadBool();
|
||||
_isRewardItem = reader.ReadBool();
|
||||
_mountedID = reader.ReadInt();
|
||||
_regularID = reader.ReadInt();
|
||||
_rider = reader.ReadEntity<Mobile>();
|
||||
if (_mountedID == 0x3EA2)
|
||||
{
|
||||
case 3:
|
||||
{
|
||||
m_IsDonationItem = reader.ReadBool();
|
||||
goto case 2;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
IsRewardItem = reader.ReadBool();
|
||||
goto case 0;
|
||||
}
|
||||
case 1:
|
||||
reader.ReadInt();
|
||||
goto case 0;
|
||||
case 0:
|
||||
{
|
||||
m_MountedID = reader.ReadInt();
|
||||
m_RegularID = reader.ReadInt();
|
||||
m_Rider = reader.ReadEntity<Mobile>();
|
||||
|
||||
if (m_MountedID == 0x3EA2)
|
||||
{
|
||||
m_MountedID = 0x3EAA;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
_mountedID = 0x3EAA;
|
||||
}
|
||||
}
|
||||
|
||||
[AfterDeserialization]
|
||||
private void AfterDeserialize()
|
||||
{
|
||||
AddFollowers();
|
||||
|
||||
if (version < 3 && Weight == 0)
|
||||
{
|
||||
Weight = -1;
|
||||
}
|
||||
}
|
||||
|
||||
public override DeathMoveResult OnParentDeath(Mobile parent)
|
||||
|
|
@ -293,9 +246,9 @@ namespace Server.Mobiles
|
|||
|
||||
public void UnmountMe()
|
||||
{
|
||||
var bp = m_Rider.Backpack;
|
||||
var bp = _rider.Backpack;
|
||||
|
||||
ItemID = m_RegularID;
|
||||
ItemID = _regularID;
|
||||
Layer = Layer.Invalid;
|
||||
Movable = true;
|
||||
|
||||
|
|
@ -310,13 +263,13 @@ namespace Server.Mobiles
|
|||
}
|
||||
else
|
||||
{
|
||||
var loc = m_Rider.Location;
|
||||
var map = m_Rider.Map;
|
||||
var loc = _rider.Location;
|
||||
var map = _rider.Map;
|
||||
|
||||
if (map == null || map == Map.Internal)
|
||||
{
|
||||
loc = m_Rider.LogoutLocation;
|
||||
map = m_Rider.LogoutMap;
|
||||
loc = _rider.LogoutLocation;
|
||||
map = _rider.LogoutMap;
|
||||
}
|
||||
|
||||
MoveToWorld(loc, map);
|
||||
|
|
@ -325,7 +278,7 @@ namespace Server.Mobiles
|
|||
|
||||
public void MountMe()
|
||||
{
|
||||
ItemID = m_MountedID;
|
||||
ItemID = _mountedID;
|
||||
Layer = Layer.Mount;
|
||||
Movable = false;
|
||||
|
||||
|
|
@ -335,9 +288,9 @@ namespace Server.Mobiles
|
|||
}
|
||||
|
||||
ProcessDelta();
|
||||
m_Rider.ProcessDelta();
|
||||
m_Rider.EquipItem(this);
|
||||
m_Rider.ProcessDelta();
|
||||
_rider.ProcessDelta();
|
||||
_rider.EquipItem(this);
|
||||
_rider.ProcessDelta();
|
||||
ProcessDelta();
|
||||
}
|
||||
|
||||
|
|
@ -429,47 +382,19 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
public class EtherealHorse : EtherealMount
|
||||
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealHorse : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealHorse()
|
||||
: base(0x20DD, 0x3EAA)
|
||||
{
|
||||
}
|
||||
|
||||
public EtherealHorse(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1041298; // Ethereal Horse Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal horse")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
|
||||
if (ItemID == 0x2124)
|
||||
{
|
||||
ItemID = 0x20DD;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealLlama : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealLlama : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealLlama()
|
||||
|
|
@ -477,34 +402,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealLlama(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1041300; // Ethereal Llama Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal llama")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealOstard : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealOstard : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealOstard()
|
||||
|
|
@ -512,34 +414,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealOstard(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1041299; // Ethereal Ostard Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal ostard")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealRidgeback : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealRidgeback : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealRidgeback()
|
||||
|
|
@ -547,34 +426,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealRidgeback(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1049747; // Ethereal Ridgeback Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal ridgeback")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealUnicorn : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealUnicorn : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealUnicorn()
|
||||
|
|
@ -582,34 +438,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealUnicorn(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1049745; // Ethereal Unicorn Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal unicorn")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealBeetle : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealBeetle : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealBeetle()
|
||||
|
|
@ -617,34 +450,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealBeetle(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1049748; // Ethereal Beetle Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal beetle")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealKirin : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealKirin : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealKirin()
|
||||
|
|
@ -652,34 +462,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealKirin(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1049746; // Ethereal Ki-Rin Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal kirin")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealSwampDragon : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class EtherealSwampDragon : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealSwampDragon()
|
||||
|
|
@ -687,34 +474,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealSwampDragon(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1049749; // Ethereal Swamp Dragon Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Name == "an ethereal swamp dragon")
|
||||
{
|
||||
Name = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class RideablePolarBear : EtherealMount
|
||||
[SerializationGenerator(0)]
|
||||
public partial class RideablePolarBear : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public RideablePolarBear()
|
||||
|
|
@ -722,30 +486,12 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public RideablePolarBear(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1076159; // Rideable Polar Bear
|
||||
public override int EtherealHue => 0;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealCuSidhe : EtherealMount
|
||||
[SerializationGenerator(0)]
|
||||
public partial class EtherealCuSidhe : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealCuSidhe()
|
||||
|
|
@ -753,29 +499,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealCuSidhe(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1080386; // Ethereal Cu Sidhe Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealHiryu : EtherealMount
|
||||
[SerializationGenerator(0)]
|
||||
public partial class EtherealHiryu : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealHiryu()
|
||||
|
|
@ -783,29 +511,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealHiryu(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1113813; // Ethereal Hiryu Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class EtherealReptalon : EtherealMount
|
||||
[SerializationGenerator(0)]
|
||||
public partial class EtherealReptalon : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public EtherealReptalon()
|
||||
|
|
@ -813,29 +523,11 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public EtherealReptalon(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1113812; // Ethereal Reptalon Statuette
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.WriteEncodedInt(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadEncodedInt();
|
||||
}
|
||||
}
|
||||
|
||||
public class ChargerOfTheFallen : EtherealMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class ChargerOfTheFallen : EtherealMount
|
||||
{
|
||||
[Constructible]
|
||||
public ChargerOfTheFallen()
|
||||
|
|
@ -843,32 +535,8 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
public ChargerOfTheFallen(Serial serial)
|
||||
: base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override int LabelNumber => 1074816; // Charger of the Fallen Statuette
|
||||
|
||||
public override int EtherealHue => 0;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (version <= 1 && Hue != 0)
|
||||
{
|
||||
Hue = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class FireSteed : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class FireSteed : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a fire steed";
|
||||
|
||||
|
|
@ -44,10 +46,6 @@ namespace Server.Mobiles
|
|||
PackItem(new Ruby(Utility.RandomMinMax(16, 30)));
|
||||
}
|
||||
|
||||
public FireSteed(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a fire steed corpse";
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Daemon | PackInstinct.Equine;
|
||||
|
|
@ -58,37 +56,5 @@ namespace Server.Mobiles
|
|||
public override void GenerateLoot()
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID <= 0)
|
||||
{
|
||||
BaseSoundID = 0xA8;
|
||||
}
|
||||
|
||||
if (version < 1)
|
||||
{
|
||||
for (var i = 0; i < Skills.Length; ++i)
|
||||
{
|
||||
Skills[i].Cap = Math.Max(100.0, Skills[i].Cap * 0.9);
|
||||
|
||||
if (Skills[i].Base > Skills[i].Cap)
|
||||
{
|
||||
Skills[i].Base = Skills[i].Cap;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class ForestOstard : BaseMount
|
||||
public partial class ForestOstard : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a forest ostard";
|
||||
|
||||
|
|
@ -36,28 +38,10 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public ForestOstard(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "an ostard corpse";
|
||||
|
||||
public override int Meat => 3;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Ostard;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class FrenziedOstard : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class FrenziedOstard : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a frenzied ostard";
|
||||
|
||||
|
|
@ -39,28 +42,10 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 77.1;
|
||||
}
|
||||
|
||||
public FrenziedOstard(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "an ostard corpse";
|
||||
|
||||
public override int Meat => 3;
|
||||
public override FoodType FavoriteFood => FoodType.Meat | FoodType.Fish | FoodType.Eggs | FoodType.FruitsAndVegies;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Ostard;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class HellSteed : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class HellSteed : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a frenzied ostard";
|
||||
|
||||
|
|
@ -10,10 +13,6 @@ namespace Server.Mobiles
|
|||
SetStats(this);
|
||||
}
|
||||
|
||||
public HellSteed(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a hellsteed corpse";
|
||||
public override Poison PoisonImmune => Poison.Lethal;
|
||||
|
||||
|
|
@ -44,19 +43,5 @@ namespace Server.Mobiles
|
|||
steed.Fame = 0;
|
||||
steed.Karma = 0;
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,163 +1,111 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Engines.Plants;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles;
|
||||
|
||||
public class Hiryu : BaseMount
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public override string DefaultName => "a hiryu";
|
||||
|
||||
[Constructible]
|
||||
public Hiryu() : base(243, 0x3E94, AIType.AI_Melee)
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Hiryu : BaseMount
|
||||
{
|
||||
Hue = GetHue();
|
||||
public override string DefaultName => "a hiryu";
|
||||
|
||||
SetStr(1201, 1410);
|
||||
SetDex(171, 270);
|
||||
SetInt(301, 325);
|
||||
|
||||
SetHits(901, 1100);
|
||||
SetMana(60);
|
||||
|
||||
SetDamage(20, 30);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 55, 70);
|
||||
SetResistance(ResistanceType.Fire, 70, 90);
|
||||
SetResistance(ResistanceType.Cold, 15, 25);
|
||||
SetResistance(ResistanceType.Poison, 40, 50);
|
||||
SetResistance(ResistanceType.Energy, 40, 50);
|
||||
|
||||
SetSkill(SkillName.Anatomy, 75.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 85.1, 100.0);
|
||||
SetSkill(SkillName.Tactics, 100.1, 110.0);
|
||||
SetSkill(SkillName.Wrestling, 100.1, 120.0);
|
||||
|
||||
Fame = 18000;
|
||||
Karma = -18000;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 4;
|
||||
MinTameSkill = 98.7;
|
||||
|
||||
if (Utility.RandomDouble() < .33)
|
||||
[Constructible]
|
||||
public Hiryu() : base(243, 0x3E94, AIType.AI_Melee)
|
||||
{
|
||||
PackItem(Seed.RandomBonsaiSeed());
|
||||
}
|
||||
Hue = GetHue();
|
||||
|
||||
if (Core.ML && Utility.RandomDouble() < .33)
|
||||
{
|
||||
PackItem(Seed.RandomPeculiarSeed(3));
|
||||
}
|
||||
}
|
||||
SetStr(1201, 1410);
|
||||
SetDex(171, 270);
|
||||
SetInt(301, 325);
|
||||
|
||||
public Hiryu(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
SetHits(901, 1100);
|
||||
SetMana(60);
|
||||
|
||||
public override string CorpseName => "a hiryu corpse";
|
||||
public override double WeaponAbilityChance => 0.07; /* 1 in 15 chance of using per landed hit */
|
||||
SetDamage(20, 30);
|
||||
|
||||
public override bool StatLossAfterTame => true;
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
public override int TreasureMapLevel => 5;
|
||||
public override int Meat => 16;
|
||||
public override int Hides => 60;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override bool CanAngerOnTame => true;
|
||||
SetResistance(ResistanceType.Physical, 55, 70);
|
||||
SetResistance(ResistanceType.Fire, 70, 90);
|
||||
SetResistance(ResistanceType.Cold, 15, 25);
|
||||
SetResistance(ResistanceType.Poison, 40, 50);
|
||||
SetResistance(ResistanceType.Energy, 40, 50);
|
||||
|
||||
private static MonsterAbility[] _abilities = { MonsterAbilities.GraspingClaw };
|
||||
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
|
||||
SetSkill(SkillName.Anatomy, 75.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 85.1, 100.0);
|
||||
SetSkill(SkillName.Tactics, 100.1, 110.0);
|
||||
SetSkill(SkillName.Wrestling, 100.1, 120.0);
|
||||
|
||||
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
|
||||
Fame = 18000;
|
||||
Karma = -18000;
|
||||
|
||||
private static int GetHue()
|
||||
{
|
||||
return Utility.Random(1075) switch
|
||||
{
|
||||
1074 => 0x85C, // Strong Green 0.09%
|
||||
1073 => 0x490, // Strong Purple 0.09%
|
||||
>= 1071 => 0x030, // Green 0.19%
|
||||
>= 1069 => 0x037, // Strong Yellow 0.19%
|
||||
>= 1066 => 0x295, // Light Green 0.28%
|
||||
>= 1063 => 0x123, // Cyan 0.28%
|
||||
>= 1058 => 0x482, // Ice Blue 0.47%
|
||||
>= 1050 => 0x487, // Blue/Yellow 0.74%
|
||||
>= 1040 => CraftResources.GetHue(CraftResource.Gold), // Gold 0.93%
|
||||
>= 1030 => CraftResources.GetHue(CraftResource.Agapite), // Agapite 0.93%
|
||||
>= 1020 => 0x495, // Strong Cyan 0.93%
|
||||
>= 1010 => 0x48D, // Light Blue 0.93%
|
||||
>= 1000 => 0x47F, // Ice Green 0.93%
|
||||
_ => 0 // No Hue 93.02%
|
||||
} | 0x8000;
|
||||
}
|
||||
Tamable = true;
|
||||
ControlSlots = 4;
|
||||
MinTameSkill = 98.7;
|
||||
|
||||
public override int GetAngerSound() => 0x4FE;
|
||||
|
||||
public override int GetIdleSound() => 0x4FD;
|
||||
|
||||
public override int GetAttackSound() => 0x4FC;
|
||||
|
||||
public override int GetHurtSound() => 0x4FF;
|
||||
|
||||
public override int GetDeathSound() => 0x4FB;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.FilthyRich, 3);
|
||||
AddLoot(LootPack.Gems, 4);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(2);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (version <= 1)
|
||||
{
|
||||
Timer.StartTimer(() => Fix(version));
|
||||
}
|
||||
|
||||
if (version < 2)
|
||||
{
|
||||
for (var i = 0; i < Skills.Length; ++i)
|
||||
if (Utility.RandomDouble() < .33)
|
||||
{
|
||||
Skills[i].Cap = Math.Max(100.0, Skills[i].Cap * 0.9);
|
||||
PackItem(Seed.RandomBonsaiSeed());
|
||||
}
|
||||
|
||||
if (Skills[i].Base > Skills[i].Cap)
|
||||
{
|
||||
Skills[i].Base = Skills[i].Cap;
|
||||
}
|
||||
if (Core.ML && Utility.RandomDouble() < .33)
|
||||
{
|
||||
PackItem(Seed.RandomPeculiarSeed(3));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Fix(int version)
|
||||
{
|
||||
switch (version)
|
||||
public override string CorpseName => "a hiryu corpse";
|
||||
public override double WeaponAbilityChance => 0.07; /* 1 in 15 chance of using per landed hit */
|
||||
|
||||
public override bool StatLossAfterTame => true;
|
||||
|
||||
public override int TreasureMapLevel => 5;
|
||||
public override int Meat => 16;
|
||||
public override int Hides => 60;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override bool CanAngerOnTame => true;
|
||||
|
||||
private static MonsterAbility[] _abilities = { MonsterAbilities.GraspingClaw };
|
||||
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
|
||||
|
||||
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
|
||||
|
||||
private static int GetHue()
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
if (InternalItem != null)
|
||||
{
|
||||
InternalItem.Hue = Hue;
|
||||
}
|
||||
return Utility.Random(1075) switch
|
||||
{
|
||||
1074 => 0x85C, // Strong Green 0.09%
|
||||
1073 => 0x490, // Strong Purple 0.09%
|
||||
>= 1071 => 0x030, // Green 0.19%
|
||||
>= 1069 => 0x037, // Strong Yellow 0.19%
|
||||
>= 1066 => 0x295, // Light Green 0.28%
|
||||
>= 1063 => 0x123, // Cyan 0.28%
|
||||
>= 1058 => 0x482, // Ice Blue 0.47%
|
||||
>= 1050 => 0x487, // Blue/Yellow 0.74%
|
||||
>= 1040 => CraftResources.GetHue(CraftResource.Gold), // Gold 0.93%
|
||||
>= 1030 => CraftResources.GetHue(CraftResource.Agapite), // Agapite 0.93%
|
||||
>= 1020 => 0x495, // Strong Cyan 0.93%
|
||||
>= 1010 => 0x48D, // Light Blue 0.93%
|
||||
>= 1000 => 0x47F, // Ice Green 0.93%
|
||||
_ => 0 // No Hue 93.02%
|
||||
} | 0x8000;
|
||||
}
|
||||
|
||||
goto case 0;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
Hue = GetHue();
|
||||
break;
|
||||
}
|
||||
public override int GetAngerSound() => 0x4FE;
|
||||
|
||||
public override int GetIdleSound() => 0x4FD;
|
||||
|
||||
public override int GetAttackSound() => 0x4FC;
|
||||
|
||||
public override int GetHurtSound() => 0x4FF;
|
||||
|
||||
public override int GetDeathSound() => 0x4FB;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.FilthyRich, 3);
|
||||
AddLoot(LootPack.Gems, 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias(
|
||||
|
|
@ -6,7 +8,8 @@ namespace Server.Mobiles
|
|||
"Server.Mobiles.GrayHorse",
|
||||
"Server.Mobiles.TanHorse"
|
||||
)]
|
||||
public class Horse : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Horse : BaseMount
|
||||
{
|
||||
private static readonly int[] m_IDs =
|
||||
{
|
||||
|
|
@ -52,28 +55,10 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public Horse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a horse corpse";
|
||||
|
||||
public override int Meat => 3;
|
||||
public override int Hides => 10;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Kirin : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Kirin : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a ki-rin";
|
||||
|
||||
|
|
@ -47,10 +49,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 95.1;
|
||||
}
|
||||
|
||||
public Kirin(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a ki-rin corpse";
|
||||
public override bool AllowFemaleRider => false;
|
||||
public override bool AllowFemaleTamer => false;
|
||||
|
|
@ -113,24 +111,5 @@ namespace Server.Mobiles
|
|||
c.DropItem(new KirinBrains());
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (version == 0)
|
||||
{
|
||||
AI = AIType.AI_Mage;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,178 +1,126 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Engines.Plants;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles;
|
||||
|
||||
public class LesserHiryu : BaseMount
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public override string DefaultName => "a lesser hiryu";
|
||||
|
||||
[Constructible]
|
||||
public LesserHiryu() : base(243, 0x3E94, AIType.AI_Melee)
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LesserHiryu : BaseMount
|
||||
{
|
||||
Hue = GetHue();
|
||||
public override string DefaultName => "a lesser hiryu";
|
||||
|
||||
SetStr(301, 410);
|
||||
SetDex(171, 270);
|
||||
SetInt(301, 325);
|
||||
|
||||
SetHits(401, 600);
|
||||
SetMana(60);
|
||||
|
||||
SetDamage(18, 23);
|
||||
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
SetResistance(ResistanceType.Physical, 45, 70);
|
||||
SetResistance(ResistanceType.Fire, 60, 80);
|
||||
SetResistance(ResistanceType.Cold, 5, 15);
|
||||
SetResistance(ResistanceType.Poison, 30, 40);
|
||||
SetResistance(ResistanceType.Energy, 30, 40);
|
||||
|
||||
SetSkill(SkillName.Anatomy, 75.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 85.1, 100.0);
|
||||
SetSkill(SkillName.Tactics, 100.1, 110.0);
|
||||
SetSkill(SkillName.Wrestling, 100.1, 120.0);
|
||||
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
Tamable = true;
|
||||
ControlSlots = 3;
|
||||
MinTameSkill = 98.7;
|
||||
|
||||
if (Utility.RandomDouble() < .33)
|
||||
[Constructible]
|
||||
public LesserHiryu() : base(243, 0x3E94, AIType.AI_Melee)
|
||||
{
|
||||
PackItem(Seed.RandomBonsaiSeed());
|
||||
}
|
||||
}
|
||||
Hue = GetHue();
|
||||
|
||||
public LesserHiryu(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
SetStr(301, 410);
|
||||
SetDex(171, 270);
|
||||
SetInt(301, 325);
|
||||
|
||||
public override string CorpseName => "a hiryu corpse";
|
||||
public override double WeaponAbilityChance => 0.07; /* 1 in 15 chance of using; 1 in 5 chance of success */
|
||||
SetHits(401, 600);
|
||||
SetMana(60);
|
||||
|
||||
public override bool StatLossAfterTame => true;
|
||||
SetDamage(18, 23);
|
||||
|
||||
public override int TreasureMapLevel => 3;
|
||||
public override int Meat => 16;
|
||||
public override int Hides => 60;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override bool CanAngerOnTame => true;
|
||||
SetDamageType(ResistanceType.Physical, 100);
|
||||
|
||||
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
|
||||
SetResistance(ResistanceType.Physical, 45, 70);
|
||||
SetResistance(ResistanceType.Fire, 60, 80);
|
||||
SetResistance(ResistanceType.Cold, 5, 15);
|
||||
SetResistance(ResistanceType.Poison, 30, 40);
|
||||
SetResistance(ResistanceType.Energy, 30, 40);
|
||||
|
||||
private static MonsterAbility[] _abilities = { MonsterAbilities.GraspingClaw };
|
||||
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
|
||||
SetSkill(SkillName.Anatomy, 75.1, 80.0);
|
||||
SetSkill(SkillName.MagicResist, 85.1, 100.0);
|
||||
SetSkill(SkillName.Tactics, 100.1, 110.0);
|
||||
SetSkill(SkillName.Wrestling, 100.1, 120.0);
|
||||
|
||||
private static int GetHue()
|
||||
{
|
||||
return Utility.Random(525) switch
|
||||
{
|
||||
524 => 0x258, // Midnight Blue 0.19%
|
||||
523 => CraftResources.GetHue(CraftResource.Valorite), // Valorite 0.19%
|
||||
>= 520 => 0x7D4, // Dark Green 0.57%
|
||||
>= 510 => 0x163, // Green 1.90%
|
||||
>= 500 => 0x295, // Green 1.90%
|
||||
_ => 0 // No Hue 95.24%
|
||||
} | 0x8000;
|
||||
}
|
||||
Fame = 10000;
|
||||
Karma = -10000;
|
||||
|
||||
public override bool OverrideBondingReqs() => ControlMaster.Skills.Bushido.Base >= 90.0;
|
||||
Tamable = true;
|
||||
ControlSlots = 3;
|
||||
MinTameSkill = 98.7;
|
||||
|
||||
public override int GetAngerSound() => 0x4FE;
|
||||
|
||||
public override int GetIdleSound() => 0x4FD;
|
||||
|
||||
public override int GetAttackSound() => 0x4FC;
|
||||
|
||||
public override int GetHurtSound() => 0x4FF;
|
||||
|
||||
public override int GetDeathSound() => 0x4FB;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.FilthyRich, 2);
|
||||
AddLoot(LootPack.Gems, 4);
|
||||
}
|
||||
|
||||
public override double GetControlChance(Mobile m, bool useBaseSkill = false)
|
||||
{
|
||||
var tamingChance = base.GetControlChance(m, useBaseSkill);
|
||||
|
||||
if (tamingChance < 0.05)
|
||||
{
|
||||
return tamingChance;
|
||||
}
|
||||
|
||||
var skill = useBaseSkill ? m.Skills.Bushido.Base : m.Skills.Bushido.Value;
|
||||
|
||||
if (skill < 90.0)
|
||||
{
|
||||
return tamingChance;
|
||||
}
|
||||
|
||||
var bushidoChance = (skill - 30.0) / 100;
|
||||
|
||||
if (m.Skills.Bushido.Base >= 120)
|
||||
{
|
||||
bushidoChance += 0.05;
|
||||
}
|
||||
|
||||
return bushidoChance > tamingChance ? bushidoChance : tamingChance;
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
writer.Write(2);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (version <= 1)
|
||||
{
|
||||
Timer.StartTimer(() => Fix(version));
|
||||
}
|
||||
|
||||
if (version < 2)
|
||||
{
|
||||
for (var i = 0; i < Skills.Length; ++i)
|
||||
if (Utility.RandomDouble() < .33)
|
||||
{
|
||||
Skills[i].Cap = Math.Max(100.0, Skills[i].Cap * 0.9);
|
||||
|
||||
if (Skills[i].Base > Skills[i].Cap)
|
||||
{
|
||||
Skills[i].Base = Skills[i].Cap;
|
||||
}
|
||||
PackItem(Seed.RandomBonsaiSeed());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Fix(int version)
|
||||
{
|
||||
switch (version)
|
||||
public override string CorpseName => "a hiryu corpse";
|
||||
public override double WeaponAbilityChance => 0.07; /* 1 in 15 chance of using; 1 in 5 chance of success */
|
||||
|
||||
public override bool StatLossAfterTame => true;
|
||||
|
||||
public override int TreasureMapLevel => 3;
|
||||
public override int Meat => 16;
|
||||
public override int Hides => 60;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override bool CanAngerOnTame => true;
|
||||
|
||||
public override WeaponAbility GetWeaponAbility() => WeaponAbility.Dismount;
|
||||
|
||||
private static MonsterAbility[] _abilities = { MonsterAbilities.GraspingClaw };
|
||||
public override MonsterAbility[] GetMonsterAbilities() => _abilities;
|
||||
|
||||
private static int GetHue()
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
if (InternalItem != null)
|
||||
{
|
||||
InternalItem.Hue = Hue;
|
||||
}
|
||||
return Utility.Random(525) switch
|
||||
{
|
||||
524 => 0x258, // Midnight Blue 0.19%
|
||||
523 => CraftResources.GetHue(CraftResource.Valorite), // Valorite 0.19%
|
||||
>= 520 => 0x7D4, // Dark Green 0.57%
|
||||
>= 510 => 0x163, // Green 1.90%
|
||||
>= 500 => 0x295, // Green 1.90%
|
||||
_ => 0 // No Hue 95.24%
|
||||
} | 0x8000;
|
||||
}
|
||||
|
||||
goto case 0;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
Hue = GetHue();
|
||||
break;
|
||||
}
|
||||
public override bool OverrideBondingReqs() => ControlMaster.Skills.Bushido.Base >= 90.0;
|
||||
|
||||
public override int GetAngerSound() => 0x4FE;
|
||||
|
||||
public override int GetIdleSound() => 0x4FD;
|
||||
|
||||
public override int GetAttackSound() => 0x4FC;
|
||||
|
||||
public override int GetHurtSound() => 0x4FF;
|
||||
|
||||
public override int GetDeathSound() => 0x4FB;
|
||||
|
||||
public override void GenerateLoot()
|
||||
{
|
||||
AddLoot(LootPack.FilthyRich, 2);
|
||||
AddLoot(LootPack.Gems, 4);
|
||||
}
|
||||
|
||||
public override double GetControlChance(Mobile m, bool useBaseSkill = false)
|
||||
{
|
||||
var tamingChance = base.GetControlChance(m, useBaseSkill);
|
||||
|
||||
if (tamingChance < 0.05)
|
||||
{
|
||||
return tamingChance;
|
||||
}
|
||||
|
||||
var skill = useBaseSkill ? m.Skills.Bushido.Base : m.Skills.Bushido.Value;
|
||||
|
||||
if (skill < 90.0)
|
||||
{
|
||||
return tamingChance;
|
||||
}
|
||||
|
||||
var bushidoChance = (skill - 30.0) / 100;
|
||||
|
||||
if (m.Skills.Bushido.Base >= 120)
|
||||
{
|
||||
bushidoChance += 0.05;
|
||||
}
|
||||
|
||||
return bushidoChance > tamingChance ? bushidoChance : tamingChance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Nightmare : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Nightmare : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a nightmare";
|
||||
|
||||
|
|
@ -87,10 +89,6 @@ namespace Server.Mobiles
|
|||
PackItem(new SulfurousAsh(Utility.RandomMinMax(3, 5)));
|
||||
}
|
||||
|
||||
public Nightmare(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a nightmare corpse";
|
||||
public override int Meat => 5;
|
||||
public override int Hides => 10;
|
||||
|
|
@ -118,28 +116,5 @@ namespace Server.Mobiles
|
|||
|
||||
return base.GetAngerSound();
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Core.AOS && BaseSoundID == 0x16A)
|
||||
{
|
||||
BaseSoundID = 0xA8;
|
||||
}
|
||||
else if (!Core.AOS && BaseSoundID == 0xA8)
|
||||
{
|
||||
BaseSoundID = 0x16A;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class RidableLlama : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class RidableLlama : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a ridable llama";
|
||||
|
||||
|
|
@ -39,28 +42,10 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public RidableLlama(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a llama corpse";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override int Hides => 12;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Ridgeback : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Ridgeback : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a ridgeback";
|
||||
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 83.1;
|
||||
}
|
||||
|
||||
public Ridgeback(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a ridgeback corpse";
|
||||
|
||||
public override int Meat => 1;
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
public override bool OverrideBondingReqs() => true;
|
||||
|
||||
public override double GetControlChance(Mobile m, bool useBaseSkill = false) => 1.0;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class SavageRidgeback : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SavageRidgeback : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a savage ridgeback";
|
||||
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 83.1;
|
||||
}
|
||||
|
||||
public SavageRidgeback(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a savage ridgeback corpse";
|
||||
|
||||
public override int Meat => 1;
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
public override bool OverrideBondingReqs() => true;
|
||||
|
||||
public override double GetControlChance(Mobile m, bool useBaseSkill = false) => 1.0;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class ScaledSwampDragon : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class ScaledSwampDragon : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a swamp dragon";
|
||||
|
||||
|
|
@ -37,10 +40,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 93.9;
|
||||
}
|
||||
|
||||
public ScaledSwampDragon(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a swamp dragon corpse";
|
||||
|
||||
public override bool AutoDispel => !Controlled;
|
||||
|
|
@ -49,19 +48,5 @@ namespace Server.Mobiles
|
|||
public override bool OverrideBondingReqs() => true;
|
||||
|
||||
public override double GetControlChance(Mobile m, bool useBaseSkill = false) => 1.0;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class SeaHorse : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SeaHorse : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a sea horse";
|
||||
|
||||
|
|
@ -13,24 +16,6 @@ namespace Server.Mobiles
|
|||
Skills.Tactics.Base = 30.0 + Utility.RandomDouble() * 15.0;
|
||||
}
|
||||
|
||||
public SeaHorse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a sea horse corpse";
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class SilverSteed : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SilverSteed : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a silver steed";
|
||||
|
||||
|
|
@ -17,24 +20,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 103.1;
|
||||
}
|
||||
|
||||
public SilverSteed(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a silver steed corpse";
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class SkeletalMount : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SkeletalMount : BaseMount
|
||||
{
|
||||
[Constructible]
|
||||
public SkeletalMount() : base(793, 0x3EBB, AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -29,39 +32,10 @@ namespace Server.Mobiles
|
|||
Karma = 0;
|
||||
}
|
||||
|
||||
public SkeletalMount(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "an undead horse corpse";
|
||||
public override string DefaultName => "a skeletal steed";
|
||||
|
||||
public override Poison PoisonImmune => Poison.Lethal;
|
||||
public override bool BleedImmune => true;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(1); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
Tamable = false;
|
||||
MinTameSkill = 0.0;
|
||||
ControlSlots = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,13 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class SwampDragon : BaseMount
|
||||
[SerializationGenerator(2, false)]
|
||||
public partial class SwampDragon : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a swamp dragon";
|
||||
|
||||
private string _bardingCraftedBy;
|
||||
private bool m_BardingExceptional;
|
||||
private int m_BardingHP;
|
||||
private CraftResource m_BardingResource;
|
||||
private bool m_HasBarding;
|
||||
|
||||
[Constructible]
|
||||
public SwampDragon() : base(0x31A, 0x3EBD, AIType.AI_Melee, FightMode.Aggressor)
|
||||
{
|
||||
|
|
@ -49,56 +45,35 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 93.9;
|
||||
}
|
||||
|
||||
public SwampDragon(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a swamp dragon corpse";
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public string BardingCraftedBy
|
||||
{
|
||||
get => _bardingCraftedBy;
|
||||
set
|
||||
{
|
||||
_bardingCraftedBy = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool BardingExceptional
|
||||
{
|
||||
get => m_BardingExceptional;
|
||||
set
|
||||
{
|
||||
m_BardingExceptional = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int BardingHP
|
||||
{
|
||||
get => m_BardingHP;
|
||||
set
|
||||
{
|
||||
m_BardingHP = value;
|
||||
InvalidateProperties();
|
||||
}
|
||||
}
|
||||
[InvalidateProperties]
|
||||
[SerializableField(0)]
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
private bool _bardingExceptional;
|
||||
|
||||
[InvalidateProperties]
|
||||
[SerializableField(1)]
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
private string _bardingCraftedBy;
|
||||
|
||||
[SerializedCommandProperty(AccessLevel.GameMaster)]
|
||||
[InvalidateProperties]
|
||||
[SerializableField(3)]
|
||||
private int _bardingHP;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableProperty(2)]
|
||||
public bool HasBarding
|
||||
{
|
||||
get => m_HasBarding;
|
||||
get => _hasBarding;
|
||||
set
|
||||
{
|
||||
m_HasBarding = value;
|
||||
_hasBarding = value;
|
||||
|
||||
if (m_HasBarding)
|
||||
if (_hasBarding)
|
||||
{
|
||||
Hue = CraftResources.GetHue(m_BardingResource);
|
||||
Hue = CraftResources.GetHue(_bardingResource);
|
||||
Body = 0x31F;
|
||||
ItemID = 0x3EBE;
|
||||
}
|
||||
|
|
@ -108,30 +83,32 @@ namespace Server.Mobiles
|
|||
Body = 0x31A;
|
||||
ItemID = 0x3EBD;
|
||||
}
|
||||
|
||||
InvalidateProperties();
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[SerializableProperty(4)]
|
||||
public CraftResource BardingResource
|
||||
{
|
||||
get => m_BardingResource;
|
||||
get => _bardingResource;
|
||||
set
|
||||
{
|
||||
m_BardingResource = value;
|
||||
_bardingResource = value;
|
||||
|
||||
if (m_HasBarding)
|
||||
if (_hasBarding)
|
||||
{
|
||||
Hue = CraftResources.GetHue(value);
|
||||
}
|
||||
|
||||
InvalidateProperties();
|
||||
this.MarkDirty();
|
||||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int BardingMaxHP => m_BardingExceptional ? 2500 : 1000;
|
||||
public int BardingMaxHP => _bardingExceptional ? 2500 : 1000;
|
||||
|
||||
public override bool ReacquireOnMovement => true;
|
||||
public override bool AutoDispel => !Controlled;
|
||||
|
|
@ -158,64 +135,19 @@ namespace Server.Mobiles
|
|||
{
|
||||
base.GetProperties(list);
|
||||
|
||||
if (m_HasBarding && m_BardingExceptional && _bardingCraftedBy != null)
|
||||
if (_hasBarding && _bardingExceptional && _bardingCraftedBy != null)
|
||||
{
|
||||
list.Add(1060853, _bardingCraftedBy); // armor exceptionally crafted by ~1_val~
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
private void Deserialize(IGenericReader reader, int version)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(2); // version
|
||||
|
||||
writer.Write(m_BardingExceptional);
|
||||
writer.Write(_bardingCraftedBy);
|
||||
writer.Write(m_HasBarding);
|
||||
writer.Write(m_BardingHP);
|
||||
writer.Write((int)m_BardingResource);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
switch (version)
|
||||
{
|
||||
case 2:
|
||||
{
|
||||
m_BardingExceptional = reader.ReadBool();
|
||||
_bardingCraftedBy = reader.ReadString();
|
||||
m_HasBarding = reader.ReadBool();
|
||||
m_BardingHP = reader.ReadInt();
|
||||
m_BardingResource = (CraftResource)reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
m_BardingExceptional = reader.ReadBool();
|
||||
var crafter = reader.ReadEntity<Mobile>();
|
||||
// Name might not be set during this deserialization
|
||||
Timer.StartTimer(() => _bardingCraftedBy = crafter?.RawName);
|
||||
m_HasBarding = reader.ReadBool();
|
||||
m_BardingHP = reader.ReadInt();
|
||||
m_BardingResource = (CraftResource)reader.ReadInt();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (Hue == 0 && !m_HasBarding)
|
||||
{
|
||||
Hue = 0x851;
|
||||
}
|
||||
|
||||
if (BaseSoundID == -1)
|
||||
{
|
||||
BaseSoundID = 0x16A;
|
||||
}
|
||||
_bardingExceptional = reader.ReadBool();
|
||||
_bardingCraftedBy = reader.ReadString();
|
||||
_hasBarding = reader.ReadBool();
|
||||
_bardingHP = reader.ReadInt();
|
||||
_bardingResource = (CraftResource)reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using ModernUO.Serialization;
|
||||
using System;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Unicorn : BaseMount
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Unicorn : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a unicorn";
|
||||
|
||||
|
|
@ -45,10 +47,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 95.1;
|
||||
}
|
||||
|
||||
public Unicorn(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a unicorn corpse";
|
||||
public override bool AllowMaleRider => false;
|
||||
public override bool AllowMaleTamer => false;
|
||||
|
|
@ -127,19 +125,5 @@ namespace Server.Mobiles
|
|||
c.DropItem(new UnicornRibs());
|
||||
}
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public abstract class BaseWarHorse : BaseMount
|
||||
[SerializationGenerator(0,false)]
|
||||
public abstract partial class BaseWarHorse : BaseMount
|
||||
{
|
||||
public override string DefaultName => "a war horse";
|
||||
|
||||
|
|
@ -49,26 +52,8 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public BaseWarHorse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a war horse corpse";
|
||||
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,13 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class CoMWarHorse : BaseWarHorse
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class CoMWarHorse : BaseWarHorse
|
||||
{
|
||||
[Constructible]
|
||||
public CoMWarHorse() : base(0x77, 0x3EB1)
|
||||
{
|
||||
}
|
||||
|
||||
public CoMWarHorse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,13 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class MinaxWarHorse : BaseWarHorse
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class MinaxWarHorse : BaseWarHorse
|
||||
{
|
||||
[Constructible]
|
||||
public MinaxWarHorse() : base(0x78, 0x3EAF)
|
||||
{
|
||||
}
|
||||
|
||||
public MinaxWarHorse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,13 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class SLWarHorse : BaseWarHorse
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SLWarHorse : BaseWarHorse
|
||||
{
|
||||
[Constructible]
|
||||
public SLWarHorse() : base(0x79, 0x3EB0)
|
||||
{
|
||||
}
|
||||
|
||||
public SLWarHorse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,28 +1,13 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class TBWarHorse : BaseWarHorse
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class TBWarHorse : BaseWarHorse
|
||||
{
|
||||
[Constructible]
|
||||
public TBWarHorse() : base(0x76, 0x3EB2)
|
||||
{
|
||||
}
|
||||
|
||||
public TBWarHorse(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Alligator : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Alligator : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Alligator() : base(AIType.AI_Melee)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 47.1;
|
||||
}
|
||||
|
||||
public Alligator(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "an alligator corpse";
|
||||
public override string DefaultName => "an alligator";
|
||||
|
||||
|
|
@ -49,24 +48,5 @@ namespace Server.Mobiles
|
|||
public override int Hides => 12;
|
||||
public override HideType HideType => HideType.Spined;
|
||||
public override FoodType FavoriteFood => FoodType.Meat | FoodType.Fish;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == 0x5A)
|
||||
{
|
||||
BaseSoundID = 660;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Serpant")]
|
||||
public class GiantSerpent : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class GiantSerpent : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GiantSerpent() : base(AIType.AI_Melee)
|
||||
|
|
@ -44,10 +46,6 @@ namespace Server.Mobiles
|
|||
// TODO: Body parts
|
||||
}
|
||||
|
||||
public GiantSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a giant serpent corpse";
|
||||
public override string DefaultName => "a giant snake";
|
||||
|
||||
|
|
@ -64,24 +62,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Average);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == -1)
|
||||
{
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Iceserpant")]
|
||||
public class IceSerpent : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class IceSerpent : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public IceSerpent() : base(AIType.AI_Melee)
|
||||
|
|
@ -59,10 +61,6 @@ namespace Server.Mobiles
|
|||
}
|
||||
}
|
||||
|
||||
public IceSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "an ice serpent corpse";
|
||||
public override string DefaultName => "a giant ice serpent";
|
||||
|
||||
|
|
@ -76,24 +74,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == -1)
|
||||
{
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Icesnake")]
|
||||
public class IceSnake : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class IceSnake : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public IceSnake() : base(AIType.AI_Melee)
|
||||
|
|
@ -37,10 +40,6 @@ namespace Server.Mobiles
|
|||
VirtualArmor = 30;
|
||||
}
|
||||
|
||||
public IceSnake(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "an ice snake corpse";
|
||||
public override string DefaultName => "an ice snake";
|
||||
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Lavalizard")]
|
||||
public class LavaLizard : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LavaLizard : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public LavaLizard() : base(AIType.AI_Melee)
|
||||
|
|
@ -44,10 +46,6 @@ namespace Server.Mobiles
|
|||
PackItem(new SulfurousAsh(Utility.Random(4, 10)));
|
||||
}
|
||||
|
||||
public LavaLizard(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a lava lizard corpse";
|
||||
public override string DefaultName => "a lava lizard";
|
||||
public override int Hides => 12;
|
||||
|
|
@ -60,19 +58,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Meager);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Lavaserpant")]
|
||||
public class LavaSerpent : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LavaSerpent : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public LavaSerpent() : base(AIType.AI_Melee)
|
||||
|
|
@ -42,10 +44,6 @@ namespace Server.Mobiles
|
|||
// TODO: body parts, armour
|
||||
}
|
||||
|
||||
public LavaSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a lava serpent corpse";
|
||||
public override string DefaultName => "a lava serpent";
|
||||
|
||||
|
|
@ -61,24 +59,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Average);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == -1)
|
||||
{
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Lavasnake")]
|
||||
public class LavaSnake : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class LavaSnake : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public LavaSnake() : base(AIType.AI_Melee)
|
||||
|
|
@ -40,10 +42,6 @@ namespace Server.Mobiles
|
|||
PackItem(new SulfurousAsh());
|
||||
}
|
||||
|
||||
public LavaSnake(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a lava snake corpse";
|
||||
public override string DefaultName => "a lava snake";
|
||||
|
||||
|
|
@ -57,19 +55,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
using ModernUO.Serialization;
|
||||
using Server.Ethics;
|
||||
using Server.Factions;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Silverserpant")]
|
||||
public class SilverSerpent : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SilverSerpent : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public SilverSerpent() : base(AIType.AI_Melee)
|
||||
|
|
@ -40,10 +42,6 @@ namespace Server.Mobiles
|
|||
VirtualArmor = 40;
|
||||
}
|
||||
|
||||
public SilverSerpent(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a silver serpent corpse";
|
||||
public override Faction FactionAllegiance => TrueBritannians.Instance;
|
||||
public override Ethic EthicAllegiance => Ethic.Hero;
|
||||
|
|
@ -61,24 +59,5 @@ namespace Server.Mobiles
|
|||
AddLoot(LootPack.Average);
|
||||
AddLoot(LootPack.Gems, 2);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (BaseSoundID == -1)
|
||||
{
|
||||
BaseSoundID = 219;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Snake : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Snake : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Snake() : base(AIType.AI_Melee)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 59.1;
|
||||
}
|
||||
|
||||
public Snake(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a snake corpse";
|
||||
public override string DefaultName => "a snake";
|
||||
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
|
||||
public override int Meat => 1;
|
||||
public override FoodType FavoriteFood => FoodType.Eggs;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Giantrat")]
|
||||
public class GiantRat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class GiantRat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public GiantRat() : base(AIType.AI_Melee)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 29.1;
|
||||
}
|
||||
|
||||
public GiantRat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a giant rat corpse";
|
||||
public override string DefaultName => "a giant rat";
|
||||
|
||||
|
|
@ -53,19 +52,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Jackrabbit")]
|
||||
public class JackRabbit : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class JackRabbit : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public JackRabbit() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -36,10 +39,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -18.9;
|
||||
}
|
||||
|
||||
public JackRabbit(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a jack rabbit corpse";
|
||||
public override string DefaultName => "a jack rabbit";
|
||||
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
public override int GetHurtSound() => 0xCA;
|
||||
|
||||
public override int GetDeathSound() => 0xCB;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Rabbit : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Rabbit : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Rabbit() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -39,10 +42,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -18.9;
|
||||
}
|
||||
|
||||
public Rabbit(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a hare corpse";
|
||||
public override string DefaultName => "a rabbit";
|
||||
|
||||
|
|
@ -55,19 +54,5 @@ namespace Server.Mobiles
|
|||
public override int GetHurtSound() => 0xCA;
|
||||
|
||||
public override int GetDeathSound() => 0xCB;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Sewerrat")]
|
||||
public class SewerRat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class SewerRat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public SewerRat() : base(AIType.AI_Melee)
|
||||
|
|
@ -38,10 +41,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -0.9;
|
||||
}
|
||||
|
||||
public SewerRat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a rat corpse";
|
||||
public override string DefaultName => "a sewer rat";
|
||||
|
||||
|
|
@ -52,19 +51,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Jwilson : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Jwilson : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Jwilson() : base(AIType.AI_Melee)
|
||||
|
|
@ -20,10 +23,6 @@ namespace Server.Mobiles
|
|||
Karma = Utility.Random(0, -624);
|
||||
}
|
||||
|
||||
public Jwilson(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a jwilson corpse";
|
||||
public override string DefaultName => "a jwilson";
|
||||
|
||||
|
|
@ -36,19 +35,5 @@ namespace Server.Mobiles
|
|||
public override int GetHurtSound() => 0x1CB;
|
||||
|
||||
public override int GetDeathSound() => 0x1CC;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Parrot : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Parrot : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Parrot() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -22,10 +25,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = 0.0;
|
||||
}
|
||||
|
||||
public Parrot(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a parrot corpse";
|
||||
public override string DefaultName => "a parrot";
|
||||
|
||||
|
|
@ -38,19 +37,5 @@ namespace Server.Mobiles
|
|||
public override int GetHurtSound() => 0x1E;
|
||||
|
||||
public override int GetDeathSound() => 0x1F;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Bird : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Bird : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Bird() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -48,38 +51,16 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -6.9;
|
||||
}
|
||||
|
||||
public Bird(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bird corpse";
|
||||
|
||||
public override MeatType MeatType => MeatType.Bird;
|
||||
public override int Meat => 1;
|
||||
public override int Feathers => 25;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
if (Hue == 0)
|
||||
{
|
||||
Hue = Utility.RandomBirdHue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class TropicalBird : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class TropicalBird : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public TropicalBird() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -111,10 +92,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -6.9;
|
||||
}
|
||||
|
||||
public TropicalBird(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a bird corpse";
|
||||
public override string DefaultName => "a tropical bird";
|
||||
|
||||
|
|
@ -122,19 +99,5 @@ namespace Server.Mobiles
|
|||
public override int Meat => 1;
|
||||
public override int Feathers => 25;
|
||||
public override FoodType FavoriteFood => FoodType.FruitsAndVegies | FoodType.GrainsAndHay;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[TypeAlias("Server.Mobiles.Housecat")]
|
||||
public class Cat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Cat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Cat() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -37,29 +40,11 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -0.9;
|
||||
}
|
||||
|
||||
public Cat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a cat corpse";
|
||||
public override string DefaultName => "a cat";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override FoodType FavoriteFood => FoodType.Meat | FoodType.Fish;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Feline;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Dog : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Dog : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Dog() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -36,29 +39,11 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -15.3;
|
||||
}
|
||||
|
||||
public Dog(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a dog corpse";
|
||||
public override string DefaultName => "a dog";
|
||||
|
||||
public override int Meat => 1;
|
||||
public override FoodType FavoriteFood => FoodType.Meat;
|
||||
public override PackInstinct PackInstinct => PackInstinct.Canine;
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
using ModernUO.Serialization;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
public class Rat : BaseCreature
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Rat : BaseCreature
|
||||
{
|
||||
[Constructible]
|
||||
public Rat() : base(AIType.AI_Animal, FightMode.Aggressor)
|
||||
|
|
@ -36,10 +39,6 @@ namespace Server.Mobiles
|
|||
MinTameSkill = -0.9;
|
||||
}
|
||||
|
||||
public Rat(Serial serial) : base(serial)
|
||||
{
|
||||
}
|
||||
|
||||
public override string CorpseName => "a rat corpse";
|
||||
public override string DefaultName => "a rat";
|
||||
|
||||
|
|
@ -50,19 +49,5 @@ namespace Server.Mobiles
|
|||
{
|
||||
AddLoot(LootPack.Poor);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
|
||||
var version = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue