public class KoboldKing : VendorEntity
Alignment = Alignment.Lawful;
public KoboldKing(Serial serial) : base(serial)
public override void OnSpawn()
if (RightHand is ProjectileWeapon)
_brain = new RangedAI(this);
_brain = new CombatAI(this);
public override int GetNearbySound() => 92;
public override int GetAttackSound() => 99;
public override int GetDeathSound() => 106;
public override Corpse GetCorpse() => default(Corpse);
public override void Serialize(BinaryWriter writer)
public override void Deserialize(BinaryReader reader)
base.Deserialize(reader);
var version = reader.ReadInt16();
public override void HandleOrder(OrderEventArgs args)
var source = args.Source;
if (IsSubordinate && source != Director)
if (order.Matches("the princess", true))
foreach (var princess in GetMobilesInLOS<KoboldPrincess>().Where(l => l.IsAlive))
source.Say(source, $"Finally! You've rescued my daughter!");
princess.Completed(this);
new PermanentManaPotion().Move(counter);
public class KoboldPrincess : CreatureEntity
public override bool CanOrderFollow => true;
Health = MaxHealth = 150;
Alignment = Alignment.Lawful;
Brain = new RescueAI(this)
public override void HandleOrder(OrderEventArgs args)
var source = args.Source;
if (IsSubordinate && source != Director)
if (order.Matches("follow", true))
source.Say(source, $"Dad! I was fine!");
public KoboldPrincess(Serial serial) : base(serial)
public override int GetNearbySound() => 256;
public override int GetAttackSound() => 257;
public override int GetDeathSound() => 258;
public override void Serialize(BinaryWriter writer)
public override void Deserialize(BinaryReader reader)
base.Deserialize(reader);
var version = reader.ReadInt16();