context: using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  using LKCamelot.model;
  namespace LKCamelot.script.monster
  {
      public class Medusa : Monster
      {
          public override string Name { get { return "Medusa"; } }
          public override int HP { get { return 800; } }
          public override int Dam { get { return 350; } }
          public override int AC { get { return 260; } }
          public override int Hit { get { return 450; } }
          public override int XP { get { return 90000; } }
          public override int Color { get { return 0; } }
          public override int SpawnTime { get { return 30000; } }
          public override Race Race { get { return Race.Demon; } }
  
          public override LootPack Loot
          {
              get
              {
                  return new LootPack(new LootPackEntry[]
                  {
                      new LootPackEntry(0.2, typeof(script.item.FlameRoundBook), "15d10+225", 1, 1, 1),
                 //     new LootPackEntry(1.0, typeof(script.item.DemonDeathBook), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Saw), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Buckler), "15d10+225", 1, 1, 1),
                      new LootPackEntry(15.0, typeof(script.item.Gold), "5d10+80", 40, 1, 1),
                  });
              }
          }
  
          public Medusa()
              : base(200)
          {
          }
  
          public Medusa(Serial temp, int x, int y, string map)
              : this(temp)
          {
              m_MonsterID = 200;
              m_Loc = new Point2D(x, y);
              m_SpawnLoc = new Point2D(m_Loc.X, m_Loc.Y);
              m_Map = map;
              m_Serial = temp;
          }
  
          public Medusa(Serial serial)
              : base(serial)
          {
          }
      }
  
      public class TwinCobra : Monster
      {
          public override string Name { get { return "Twin Cobra"; } }
          public override int HP { get { return 800; } }
          public override int Dam { get { return 350; } }
          public override int AC { get { return 260; } }
          public override int Hit { get { return 450; } }
          public override int XP { get { return 90000; } }
          public override int Color { get { return 0; } }
          public override int SpawnTime { get { return 30000; } }
          public override Race Race { get { return Race.Demon; } }
  
          public override LootPack Loot
          {
              get
              {
                  return new LootPack(new LootPackEntry[]
                  {
                      new LootPackEntry(0.2, typeof(script.item.FlameRoundBook), "15d10+225", 1, 1, 1),
                 //     new LootPackEntry(1.0, typeof(script.item.DemonDeathBook), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Saw), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Buckler), "15d10+225", 1, 1, 1),
                      new LootPackEntry(15.0, typeof(script.item.Gold), "5d10+80", 40, 1, 1),
                  });
              }
          }
  
          public TwinCobra()
              : base(201)
          {
          }
  
          public TwinCobra(Serial temp, int x, int y, string map)
              : this(temp)
          {
              m_MonsterID = 201;
              m_Loc = new Point2D(x, y);
              m_SpawnLoc = new Point2D(m_Loc.X, m_Loc.Y);
              m_Map = map;
              m_Serial = temp;
          }
  
          public TwinCobra(Serial serial)
              : base(serial)
          {
          }
      }
  
      public class DeadlyMessenger : Monster
      {
          public override string Name { get { return "Deadly Messenger"; } }
          public override int HP { get { return 900; } }
          public override int Dam { get { return 500; } }
          public override int AC { get { return 285; } }
          public override int Hit { get { return 550; } }
          public override int XP { get { return 110000; } }
          public override int Color { get { return 0; } }
          public override int SpawnTime { get { return 30000; } }
          public override Race Race { get { return Race.Demon; } }
  
          public override LootPack Loot
          {
              get
              {
                  return new LootPack(new LootPackEntry[]
                  {
                      new LootPackEntry(0.2, typeof(script.item.FlameRoundBook), "15d10+225", 1, 1, 1),
                 //     new LootPackEntry(1.0, typeof(script.item.DemonDeathBook), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Saw), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Buckler), "15d10+225", 1, 1, 1),
                      new LootPackEntry(15.0, typeof(script.item.Gold), "5d10+80", 40, 1, 1),
                  });
              }
          }
  
          public DeadlyMessenger()
              : base(203)
          {
          }
  
          public DeadlyMessenger(Serial temp, int x, int y, string map)
              : this(temp)
          {
              m_MonsterID = 203;
              m_Loc = new Point2D(x, y);
              m_SpawnLoc = new Point2D(m_Loc.X, m_Loc.Y);
              m_Map = map;
              m_Serial = temp;
          }
  
          public DeadlyMessenger(Serial serial)
              : base(serial)
          {
          }
      }
  
      public class WildMonk : Monster
      {
          public override string Name { get { return "Wild Monk"; } }
          public override int HP { get { return 900; } }
          public override int Dam { get { return 500; } }
          public override int AC { get { return 285; } }
          public override int Hit { get { return 550; } }
          public override int XP { get { return 110000; } }
          public override int Color { get { return 0; } }
          public override int SpawnTime { get { return 30000; } }
          public override Race Race { get { return Race.Demon; } }
  
          public override LootPack Loot
          {
              get
              {
                  return new LootPack(new LootPackEntry[]
                  {
                      new LootPackEntry(0.1, typeof(script.item.GoldPlate), "15d10+225", 1, 1, 1),
                      new LootPackEntry(0.1, typeof(script.item.DarkMail), "15d10+225", 1, 1, 1),
                      new LootPackEntry(0.1, typeof(script.item.Protectoria), "15d10+225", 1, 1, 1),
                      new LootPackEntry(0.3, typeof(script.item.PowerStrong), "15d10+225", 1, 1, 1),
                      new LootPackEntry(15.0, typeof(script.item.Gold), "2d1000+3000", 40, 1, 1),
                  });
              }
          }
  
          public WildMonk()
              : base(202)
          {
          }
  
          public WildMonk(Serial temp, int x, int y, string map)
              : this(temp)
          {
              m_MonsterID = 202;
              m_Loc = new Point2D(x, y);
              m_SpawnLoc = new Point2D(m_Loc.X, m_Loc.Y);
              m_Map = map;
              m_Serial = temp;
          }
  
          public WildMonk(Serial serial)
              : base(serial)
          {
          }
      }
  
      public class vViking : Monster
      {
          public override string Name { get { return "Viking"; } }
          public override int HP { get { return 500; } }
          public override int Dam { get { return 250; } }
          public override int AC { get { return 160; } }
          public override int Hit { get { return 230; } }
          public override int XP { get { return 22500; } }
          public override int Color { get { return 0; } }
          public override int SpawnTime { get { return 30000; } }
          public override Race Race { get { return Race.Demon; } }
  
          public override LootPack Loot
          {
              get
              {
                  return new LootPack(new LootPackEntry[]
                  {
                      new LootPackEntry(0.2, typeof(script.item.FlameRoundBook), "15d10+225", 1, 1, 1),
                 //     new LootPackEntry(1.0, typeof(script.item.DemonDeathBook), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Saw), "15d10+225", 1, 1, 1),
                      new LootPackEntry(1.5, typeof(script.item.Buckler), "15d10+225", 1, 1, 1),
                      new LootPackEntry(15.0, typeof(script.item.Gold), "5d10+80", 40, 1, 1),
                  });
              }
          }
  
          public vViking()
              : base(35)
          {
          }
  
          public vViking(Serial temp, int x, int y, string map)
              : this(temp)
          {
              m_MonsterID = 35;
  
gt:             m_Loc = new Point2D(x, y);