Пример #1
0
        public InvasionTerathanMatriarch(InvasionController c)
            : base(c, InvasionSpawnType.Arachnid, AIType.AI_Mage, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a terathan matriarch";
            Body        = 72;
            BaseSoundID = 599;

            SetStr(316, 405);
            SetDex(96, 115);
            SetInt(366, 455);

            SetHits(190, 243);

            SetDamage(11, 14);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 30, 40);
            SetResistance(ResistanceType.Cold, 35, 45);
            SetResistance(ResistanceType.Poison, 40, 50);
            SetResistance(ResistanceType.Energy, 35, 45);

            SetSkill(SkillName.EvalInt, 90.1, 100.0);
            SetSkill(SkillName.Magery, 90.1, 100.0);
            SetSkill(SkillName.MagicResist, 90.1, 100.0);
            SetSkill(SkillName.Tactics, 50.1, 70.0);
            SetSkill(SkillName.Wrestling, 60.1, 80.0);

            Fame  = 10000;
            Karma = -10000;

            PackItem(new SpidersSilk(5));
            PackNecroReg(Utility.RandomMinMax(4, 10));
        }
Пример #2
0
        public InvasionTreefellow(InvasionController c)
            : base(c, InvasionSpawnType.Plant, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name = "a treefellow";
            Body = 301;

            SetStr(196, 220);
            SetDex(31, 55);
            SetInt(66, 90);

            SetHits(118, 132);

            SetDamage(12, 16);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 20, 25);
            SetResistance(ResistanceType.Cold, 50, 60);
            SetResistance(ResistanceType.Poison, 30, 35);
            SetResistance(ResistanceType.Energy, 20, 30);

            SetSkill(SkillName.MagicResist, 40.1, 55.0);
            SetSkill(SkillName.Tactics, 65.1, 90.0);
            SetSkill(SkillName.Wrestling, 65.1, 85.0);

            Fame  = 500;
            Karma = 1500;

            VirtualArmor = 24;
            PackItem(new Log(Utility.RandomMinMax(23, 34)));
        }
Пример #3
0
        public InvasionGoreFiend(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a gore fiend";
            Body        = 305;
            BaseSoundID = 224;

            SetStr(161, 185);
            SetDex(41, 65);
            SetInt(46, 70);

            SetHits(97, 111);

            SetDamage(15, 21);

            SetDamageType(ResistanceType.Physical, 85);
            SetDamageType(ResistanceType.Poison, 15);

            SetResistance(ResistanceType.Physical, 35, 45);
            SetResistance(ResistanceType.Fire, 25, 35);
            SetResistance(ResistanceType.Cold, 15, 25);
            SetResistance(ResistanceType.Poison, 5, 15);
            SetResistance(ResistanceType.Energy, 30, 40);

            SetSkill(SkillName.MagicResist, 40.1, 55.0);
            SetSkill(SkillName.Tactics, 45.1, 70.0);
            SetSkill(SkillName.Wrestling, 50.1, 70.0);

            Fame  = 1500;
            Karma = -1500;

            VirtualArmor = 24;
        }
Пример #4
0
        public InvasionPlagueBeast(InvasionController c)
            : base(c, InvasionSpawnType.Misc, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name = "a plague beast";
            Body = 775;

            SetStr(302, 500);
            SetDex(80);
            SetInt(16, 20);

            SetHits(318, 404);

            SetDamage(20, 24);

            SetDamageType(ResistanceType.Physical, 60);
            SetDamageType(ResistanceType.Poison, 40);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 40, 50);
            SetResistance(ResistanceType.Cold, 25, 35);
            SetResistance(ResistanceType.Poison, 65, 75);
            SetResistance(ResistanceType.Energy, 25, 35);

            SetSkill(SkillName.MagicResist, 35.0);
            SetSkill(SkillName.Tactics, 100.0);
            SetSkill(SkillName.Wrestling, 100.0);

            Fame  = 13000;
            Karma = -13000;

            VirtualArmor = 30;
            PackArmor(1, 5);
        }
Пример #5
0
        public InvasionJukaMage(InvasionController c)
            : base(c, InvasionSpawnType.Jukas, AIType.AI_Mage, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name = "a juka mage";
            Body = 765;

            SetStr(201, 300);
            SetDex(71, 90);
            SetInt(451, 500);

            SetHits(121, 180);

            SetDamage(4, 10);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 20, 30);
            SetResistance(ResistanceType.Fire, 35, 45);
            SetResistance(ResistanceType.Cold, 30, 40);
            SetResistance(ResistanceType.Poison, 10, 20);
            SetResistance(ResistanceType.Energy, 35, 45);

            SetSkill(SkillName.Anatomy, 80.1, 90.0);
            SetSkill(SkillName.EvalInt, 80.2, 100.0);
            SetSkill(SkillName.Magery, 99.1, 100.0);
            SetSkill(SkillName.Meditation, 80.2, 100.0);
            SetSkill(SkillName.MagicResist, 140.1, 150.0);
            SetSkill(SkillName.Tactics, 80.1, 90.0);
            SetSkill(SkillName.Wrestling, 80.1, 90.0);

            Fame  = 15000;
            Karma = -15000;

            VirtualArmor = 16;

            Container bag = new Bag();

            int count = Utility.RandomMinMax(10, 20);

            for (int i = 0; i < count; ++i)
            {
                Item item = Loot.RandomReagent();

                if (item == null)
                {
                    continue;
                }

                if (!bag.TryDropItem(this, item, false))
                {
                    item.Delete();
                }
            }

            PackItem(bag);

            PackItem(new ArcaneGem());

            m_NextAbilityTime = DateTime.Now + TimeSpan.FromSeconds(Utility.RandomMinMax(2, 5));
        }
Пример #6
0
        public InvasionRatman(InvasionController c)
            : base(c, InvasionSpawnType.Ratman, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = NameList.RandomName("ratman");
            Body        = 42;
            BaseSoundID = 437;

            SetStr(96, 120);
            SetDex(81, 100);
            SetInt(36, 60);

            SetHits(58, 72);

            SetDamage(4, 5);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 25, 30);
            SetResistance(ResistanceType.Fire, 10, 20);
            SetResistance(ResistanceType.Cold, 10, 20);
            SetResistance(ResistanceType.Poison, 10, 20);
            SetResistance(ResistanceType.Energy, 10, 20);

            SetSkill(SkillName.MagicResist, 35.1, 60.0);
            SetSkill(SkillName.Tactics, 50.1, 75.0);
            SetSkill(SkillName.Wrestling, 50.1, 75.0);

            Fame  = 1500;
            Karma = -1500;

            VirtualArmor = 28;
        }
Пример #7
0
        public InvasionGibberling(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a InvasionGibberling";
            Body        = 307;
            BaseSoundID = 422;

            SetStr(141, 165);
            SetDex(101, 125);
            SetInt(56, 80);

            SetHits(85, 99);

            SetDamage(12, 17);

            SetDamageType(ResistanceType.Physical, 0);
            SetDamageType(ResistanceType.Fire, 40);
            SetDamageType(ResistanceType.Energy, 60);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 25, 35);
            SetResistance(ResistanceType.Cold, 25, 35);
            SetResistance(ResistanceType.Poison, 10, 20);
            SetResistance(ResistanceType.Energy, 30, 40);

            SetSkill(SkillName.MagicResist, 45.1, 70.0);
            SetSkill(SkillName.Tactics, 67.6, 92.5);
            SetSkill(SkillName.Wrestling, 60.1, 80.0);

            Fame  = 1500;
            Karma = -1500;

            VirtualArmor = 27;
        }
Пример #8
0
        public InvasionMoundOfMaggots(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a mound of maggots";
            Body        = 319;
            BaseSoundID = 898;

            SetStr(61, 70);
            SetDex(61, 70);
            SetInt(10);

            SetMana(0);

            SetDamage(3, 9);

            SetDamageType(ResistanceType.Physical, 50);
            SetDamageType(ResistanceType.Poison, 50);

            SetResistance(ResistanceType.Physical, 90);
            SetResistance(ResistanceType.Poison, 100);

            SetSkill(SkillName.Tactics, 50.0);
            SetSkill(SkillName.Wrestling, 50.1, 60.0);

            Fame  = 1000;
            Karma = -1000;

            VirtualArmor = 24;
        }
Пример #9
0
        public InvasionPatchworkSkeleton(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a patchwork skeleton";
            Body        = 309;
            BaseSoundID = 0x48D;

            SetStr(96, 120);
            SetDex(71, 95);
            SetInt(16, 40);

            SetHits(58, 72);

            SetDamage(18, 22);

            SetDamageType(ResistanceType.Physical, 85);
            SetDamageType(ResistanceType.Cold, 15);

            SetResistance(ResistanceType.Physical, 55, 65);
            SetResistance(ResistanceType.Fire, 50, 60);
            SetResistance(ResistanceType.Cold, 70, 80);
            SetResistance(ResistanceType.Poison, 100);
            SetResistance(ResistanceType.Energy, 40, 50);

            SetSkill(SkillName.MagicResist, 70.1, 95.0);
            SetSkill(SkillName.Tactics, 55.1, 80.0);
            SetSkill(SkillName.Wrestling, 50.1, 70.0);

            Fame  = 500;
            Karma = -500;

            VirtualArmor = 54;
        }
Пример #10
0
        public InvasionWailingBanshee(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a wailing banshee";
            Body        = 310;
            BaseSoundID = 0x482;

            SetStr(126, 150);
            SetDex(76, 100);
            SetInt(86, 110);

            SetHits(76, 90);

            SetDamage(10, 14);

            SetDamageType(ResistanceType.Physical, 20);
            SetDamageType(ResistanceType.Cold, 60);
            SetDamageType(ResistanceType.Poison, 20);

            SetResistance(ResistanceType.Physical, 50, 60);
            SetResistance(ResistanceType.Fire, 25, 30);
            SetResistance(ResistanceType.Cold, 70, 80);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 40, 50);

            SetSkill(SkillName.MagicResist, 70.1, 95.0);
            SetSkill(SkillName.Tactics, 45.1, 70.0);
            SetSkill(SkillName.Wrestling, 50.1, 70.0);

            Fame  = 1500;
            Karma = -1500;

            VirtualArmor = 19;
        }
Пример #11
0
        public InvasionVampireBat(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a vampire bat";
            Body        = 317;
            BaseSoundID = 0x270;

            SetStr(91, 110);
            SetDex(91, 115);
            SetInt(26, 50);

            SetHits(55, 66);

            SetDamage(7, 9);

            SetDamageType(ResistanceType.Physical, 80);
            SetDamageType(ResistanceType.Poison, 20);

            SetResistance(ResistanceType.Physical, 35, 45);
            SetResistance(ResistanceType.Fire, 15, 25);
            SetResistance(ResistanceType.Cold, 15, 25);
            SetResistance(ResistanceType.Poison, 60, 70);
            SetResistance(ResistanceType.Energy, 40, 50);

            SetSkill(SkillName.MagicResist, 70.1, 95.0);
            SetSkill(SkillName.Tactics, 55.1, 80.0);
            SetSkill(SkillName.Wrestling, 30.1, 55.0);

            Fame  = 1000;
            Karma = -1000;

            VirtualArmor = 14;
        }
Пример #12
0
        public InvasionSandVortex(InvasionController c)
            : base(c, InvasionSpawnType.Misc, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a sand vortex";
            Body        = 790;
            BaseSoundID = 263;

            SetStr(96, 120);
            SetDex(171, 195);
            SetInt(76, 100);

            SetHits(51, 62);

            SetDamage(3, 16);

            SetDamageType(ResistanceType.Physical, 90);
            SetDamageType(ResistanceType.Fire, 10);

            SetResistance(ResistanceType.Physical, 80, 90);
            SetResistance(ResistanceType.Fire, 60, 70);
            SetResistance(ResistanceType.Cold, 60, 70);
            SetResistance(ResistanceType.Poison, 60, 70);
            SetResistance(ResistanceType.Energy, 60, 70);

            SetSkill(SkillName.MagicResist, 150.0);
            SetSkill(SkillName.Tactics, 70.0);
            SetSkill(SkillName.Wrestling, 80.0);

            Fame  = 4500;
            Karma = -4500;

            VirtualArmor = 28;
            PackItem(new Bone());
        }
Пример #13
0
        public InvasionRavager(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a ravager";
            Body        = 314;
            BaseSoundID = 357;

            SetStr(251, 275);
            SetDex(101, 125);
            SetInt(66, 90);

            SetHits(161, 175);

            SetDamage(15, 20);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 50, 60);
            SetResistance(ResistanceType.Fire, 50, 60);
            SetResistance(ResistanceType.Cold, 60, 70);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 20, 30);

            SetSkill(SkillName.MagicResist, 50.1, 75.0);
            SetSkill(SkillName.Tactics, 75.1, 100.0);
            SetSkill(SkillName.Wrestling, 70.1, 90.0);

            Fame  = 3500;
            Karma = -3500;

            VirtualArmor = 54;
        }
Пример #14
0
        public InvasionFleshGolem(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a flesh golem";
            Body        = 304;
            BaseSoundID = 684;

            SetStr(176, 200);
            SetDex(51, 75);
            SetInt(46, 70);

            SetHits(106, 120);

            SetDamage(18, 22);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 50, 60);
            SetResistance(ResistanceType.Fire, 25, 35);
            SetResistance(ResistanceType.Cold, 15, 25);
            SetResistance(ResistanceType.Poison, 60, 70);
            SetResistance(ResistanceType.Energy, 30, 40);

            SetSkill(SkillName.MagicResist, 50.1, 75.0);
            SetSkill(SkillName.Tactics, 55.1, 80.0);
            SetSkill(SkillName.Wrestling, 60.1, 70.0);

            Fame  = 1000;
            Karma = -1800;

            VirtualArmor = 34;
        }
Пример #15
0
        public InvasionBogling(InvasionController c)
            : base(c, InvasionSpawnType.Plant, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a bogling";
            Body        = 779;
            BaseSoundID = 422;

            SetStr(96, 120);
            SetDex(91, 115);
            SetInt(21, 45);

            SetHits(58, 72);

            SetDamage(5, 7);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 20, 25);
            SetResistance(ResistanceType.Fire, 10, 20);
            SetResistance(ResistanceType.Cold, 15, 25);
            SetResistance(ResistanceType.Poison, 15, 25);
            SetResistance(ResistanceType.Energy, 15, 25);

            SetSkill(SkillName.MagicResist, 75.1, 100.0);
            SetSkill(SkillName.Tactics, 55.1, 80.0);
            SetSkill(SkillName.Wrestling, 55.1, 75.0);

            Fame  = 450;
            Karma = -450;

            VirtualArmor = 28;

            PackItem(new Log(4));
        }
Пример #16
0
        public InvasionOphidianMatriarch(InvasionController c)
            : base(c, InvasionSpawnType.Reptile, AIType.AI_Mage, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "an ophidian matriarch";
            Body        = 87;
            BaseSoundID = 644;

            SetStr(416, 505);
            SetDex(96, 115);
            SetInt(366, 455);

            SetHits(250, 303);

            SetDamage(11, 13);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 30, 40);
            SetResistance(ResistanceType.Cold, 35, 45);
            SetResistance(ResistanceType.Poison, 40, 50);
            SetResistance(ResistanceType.Energy, 35, 45);

            SetSkill(SkillName.EvalInt, 90.1, 100.0);
            SetSkill(SkillName.Magery, 90.1, 100.0);
            SetSkill(SkillName.Meditation, 5.4, 25.0);
            SetSkill(SkillName.MagicResist, 90.1, 100.0);
            SetSkill(SkillName.Tactics, 50.1, 70.0);
            SetSkill(SkillName.Wrestling, 60.1, 80.0);

            Fame  = 16000;
            Karma = -16000;

            VirtualArmor = 50;
        }
Пример #17
0
        public InvasionQuagmire(InvasionController c)
            : base(c, InvasionSpawnType.Plant, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.4, 0.8 })
        {
            Name        = "a quagmire";
            Body        = 789;
            BaseSoundID = 352;

            SetStr(101, 130);
            SetDex(66, 85);
            SetInt(31, 55);

            SetHits(91, 105);

            SetDamage(10, 14);

            SetDamageType(ResistanceType.Physical, 60);
            SetDamageType(ResistanceType.Poison, 40);

            SetResistance(ResistanceType.Physical, 50, 60);
            SetResistance(ResistanceType.Fire, 10, 20);
            SetResistance(ResistanceType.Cold, 10, 20);
            SetResistance(ResistanceType.Poison, 100);
            SetResistance(ResistanceType.Energy, 20, 30);

            SetSkill(SkillName.MagicResist, 65.1, 75.0);
            SetSkill(SkillName.Tactics, 50.1, 60.0);
            SetSkill(SkillName.Wrestling, 60.1, 80.0);

            Fame  = 1500;
            Karma = -1500;

            VirtualArmor = 32;
        }
Пример #18
0
        public InvasionEfreet(InvasionController c)
            : base(c, InvasionSpawnType.Elemental, AIType.AI_Mage, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "an efreet";
            Body        = 131;
            BaseSoundID = 768;

            SetStr(326, 355);
            SetDex(266, 285);
            SetInt(171, 195);

            SetHits(196, 213);

            SetDamage(11, 13);

            SetDamageType(ResistanceType.Physical, 0);
            SetDamageType(ResistanceType.Fire, 50);
            SetDamageType(ResistanceType.Energy, 50);

            SetResistance(ResistanceType.Physical, 50, 60);
            SetResistance(ResistanceType.Fire, 60, 70);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 40, 50);

            SetSkill(SkillName.EvalInt, 60.1, 75.0);
            SetSkill(SkillName.Magery, 60.1, 75.0);
            SetSkill(SkillName.MagicResist, 60.1, 75.0);
            SetSkill(SkillName.Tactics, 60.1, 80.0);
            SetSkill(SkillName.Wrestling, 60.1, 80.0);

            Fame  = 10000;
            Karma = -10000;

            VirtualArmor = 56;
        }
Пример #19
0
        public InvasionGiantSpider(InvasionController c)
            : base(c, InvasionSpawnType.Arachnid, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a giant spider";
            Body        = 28;
            BaseSoundID = 0x388;

            SetStr(76, 100);
            SetDex(76, 95);
            SetInt(36, 60);

            SetHits(46, 60);
            SetMana(0);

            SetDamage(5, 13);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 15, 20);
            SetResistance(ResistanceType.Poison, 25, 35);

            SetSkill(SkillName.Poisoning, 60.1, 80.0);
            SetSkill(SkillName.MagicResist, 25.1, 40.0);
            SetSkill(SkillName.Tactics, 35.1, 50.0);
            SetSkill(SkillName.Wrestling, 50.1, 65.0);

            Fame  = 600;
            Karma = -600;

            VirtualArmor = 16;

            PackItem(new SpidersSilk(5));
        }
Пример #20
0
        public InvasionOphidianWarrior(InvasionController c)
            : base(c, InvasionSpawnType.Reptile, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = m_Names[Utility.Random(m_Names.Length)];
            Body        = 86;
            BaseSoundID = 634;

            SetStr(150, 320);
            SetDex(94, 190);
            SetInt(64, 160);

            SetHits(128, 155);
            SetMana(0);

            SetDamage(5, 11);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 35, 40);
            SetResistance(ResistanceType.Fire, 20, 30);
            SetResistance(ResistanceType.Cold, 25, 35);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 25, 35);

            SetSkill(SkillName.MagicResist, 70.1, 85.0);
            SetSkill(SkillName.Swords, 60.1, 85.0);
            SetSkill(SkillName.Tactics, 75.1, 90.0);

            Fame  = 4500;
            Karma = -4500;

            VirtualArmor = 36;
        }
Пример #21
0
        public InvasionLizardman(InvasionController c)
            : base(c, InvasionSpawnType.Reptile, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = NameList.RandomName("lizardman");
            Body        = Utility.RandomList(35, 36);
            BaseSoundID = 417;

            SetStr(96, 120);
            SetDex(86, 105);
            SetInt(36, 60);

            SetHits(58, 72);

            SetDamage(5, 7);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 25, 30);
            SetResistance(ResistanceType.Fire, 5, 10);
            SetResistance(ResistanceType.Cold, 5, 10);
            SetResistance(ResistanceType.Poison, 10, 20);

            SetSkill(SkillName.MagicResist, 35.1, 60.0);
            SetSkill(SkillName.Tactics, 55.1, 80.0);
            SetSkill(SkillName.Wrestling, 50.1, 70.0);

            Fame  = 1500;
            Karma = -1500;

            VirtualArmor = 28;
        }
Пример #22
0
        public InvasionTerathanWarrior(InvasionController c)
            : base(c, InvasionSpawnType.Arachnid, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "a terathan warrior";
            Body        = 70;
            BaseSoundID = 589;

            SetStr(166, 215);
            SetDex(96, 145);
            SetInt(41, 65);

            SetHits(100, 129);
            SetMana(0);

            SetDamage(7, 17);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 30, 35);
            SetResistance(ResistanceType.Fire, 20, 30);
            SetResistance(ResistanceType.Cold, 25, 35);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 25, 35);

            SetSkill(SkillName.Poisoning, 60.1, 80.0);
            SetSkill(SkillName.MagicResist, 60.1, 75.0);
            SetSkill(SkillName.Tactics, 80.1, 100.0);
            SetSkill(SkillName.Wrestling, 80.1, 90.0);

            Fame  = 4000;
            Karma = -4000;

            VirtualArmor = 30;
        }
Пример #23
0
        public InvasionShadowWisp(InvasionController c)
            : base(c, InvasionSpawnType.Misc, AIType.AI_Mage, FightMode.Closest, new double[] { 10, 1, 0.3, 0.6 })
        {
            Name        = "a shadow wisp";
            Body        = 165;
            BaseSoundID = 466;

            SetStr(16, 40);
            SetDex(16, 45);
            SetInt(11, 25);

            SetHits(10, 24);

            SetDamage(5, 10);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 15, 20);
            SetResistance(ResistanceType.Fire, 5, 10);
            SetResistance(ResistanceType.Poison, 5, 10);
            SetResistance(ResistanceType.Energy, 15, 20);

            SetSkill(SkillName.EvalInt, 40.0);
            SetSkill(SkillName.Magery, 50.0);
            SetSkill(SkillName.Meditation, 40.0);
            SetSkill(SkillName.MagicResist, 10.0);
            SetSkill(SkillName.Tactics, 0.1, 15.0);
            SetSkill(SkillName.Wrestling, 25.1, 40.0);

            Fame  = 500;
            Karma = -500;

            VirtualArmor = 18;

            AddItem(new LightSource());

            switch (Utility.Random(10))
            {
            case 0: PackItem(new LeftArm()); break;

            case 1: PackItem(new RightArm()); break;

            case 2: PackItem(new Torso()); break;

            case 3: PackItem(new Bone()); break;

            case 4: PackItem(new RibCage()); break;

            case 5: PackItem(new RibCage()); break;

            case 6: PackItem(new BonePile()); break;

            case 7: PackItem(new BonePile()); break;

            case 8: PackItem(new BonePile()); break;

            case 9: PackItem(new BonePile()); break;
            }
        }
Пример #24
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            m_Controller = (InvasionController)reader.ReadItem();
            m_SpawnType  = (InvasionSpawnType)reader.ReadInt();
            Delete();
        }
Пример #25
0
        public InvasionOrcishLord(InvasionController c)
            : base(c, InvasionSpawnType.Orc, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "an orcish lord";
            Body        = 138;
            BaseSoundID = 0x45A;

            SetStr(147, 215);
            SetDex(91, 115);
            SetInt(61, 85);

            SetHits(95, 123);

            SetDamage(4, 14);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 25, 35);
            SetResistance(ResistanceType.Fire, 30, 40);
            SetResistance(ResistanceType.Cold, 20, 30);
            SetResistance(ResistanceType.Poison, 30, 40);
            SetResistance(ResistanceType.Energy, 30, 40);

            SetSkill(SkillName.MagicResist, 70.1, 85.0);
            SetSkill(SkillName.Swords, 60.1, 85.0);
            SetSkill(SkillName.Tactics, 75.1, 90.0);
            SetSkill(SkillName.Wrestling, 60.1, 85.0);

            Fame  = 2500;
            Karma = -2500;

            switch (Utility.Random(5))
            {
            case 0: PackItem(new Lockpick());  break;

            case 1: PackItem(new MortarPestle()); break;

            case 2: PackItem(new Bottle()); break;

            case 3: PackItem(new RawRibs()); break;

            case 4: PackItem(new Shovel()); break;
            }

            PackItem(new RingmailChest());

            if (0.3 > Utility.RandomDouble())
            {
                PackItem(Loot.RandomPossibleReagent());
            }

            if (0.2 > Utility.RandomDouble())
            {
                PackItem(new BolaBall());
            }
        }
Пример #26
0
        public InvasionRegion(InvasionController c)
            : base(String.Format("InvasionRegion{0}", Count.ToString()), c.InvasionMap, InvasionConfig.DefaultRegionPriority, c.InvasionRegionBounds)
        {
            Controller = c;
            Count     += 1;
            GenerateSpawnTable();

            InvasionEventSink.InvasionStartedEvent += new InvasionEventSink.InvasionStarted(OnInvasionStarted);
            InvasionEventSink.InvasionEndedEvent   += new InvasionEventSink.InvasionEnded(OnInvasionEnded);
        }
Пример #27
0
        public InvasionOrcCaptain(InvasionController c)
            : base(c, InvasionSpawnType.Orc, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = NameList.RandomName("orc");
            Body        = 7;
            BaseSoundID = 0x45A;

            SetStr(111, 145);
            SetDex(101, 135);
            SetInt(86, 110);

            SetHits(67, 87);

            SetDamage(5, 15);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 30, 35);
            SetResistance(ResistanceType.Fire, 10, 20);
            SetResistance(ResistanceType.Cold, 15, 25);
            SetResistance(ResistanceType.Poison, 5, 10);
            SetResistance(ResistanceType.Energy, 5, 10);

            SetSkill(SkillName.MagicResist, 70.1, 85.0);
            SetSkill(SkillName.Swords, 70.1, 95.0);
            SetSkill(SkillName.Tactics, 85.1, 100.0);

            Fame  = 2500;
            Karma = -2500;

            VirtualArmor = 34;

            // TODO: Skull?
            switch (Utility.Random(7))
            {
            case 0: PackItem(new Arrow()); break;

            case 1: PackItem(new Lockpick()); break;

            case 2: PackItem(new Shaft()); break;

            case 3: PackItem(new Ribs()); break;

            case 4: PackItem(new Bandage()); break;

            case 5: PackItem(new BeverageBottle(BeverageType.Wine)); break;

            case 6: PackItem(new Jug(BeverageType.Cider)); break;
            }

            if (Core.AOS)
            {
                PackItem(Loot.RandomNecromancyReagent());
            }
        }
Пример #28
0
        public InvasionJukaLord(InvasionController c)
            : base(c, InvasionSpawnType.Jukas, AIType.AI_Archer, FightMode.Closest, new double[] { 10, 3, 0.2, 0.4 })
        {
            Name = "a juka lord";
            Body = 766;

            SetStr(401, 500);
            SetDex(81, 100);
            SetInt(151, 200);

            SetHits(241, 300);

            SetDamage(10, 12);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 40, 50);
            SetResistance(ResistanceType.Fire, 45, 50);
            SetResistance(ResistanceType.Cold, 40, 50);
            SetResistance(ResistanceType.Poison, 20, 25);
            SetResistance(ResistanceType.Energy, 40, 50);

            SetSkill(SkillName.Anatomy, 90.1, 100.0);
            SetSkill(SkillName.Archery, 95.1, 100.0);
            SetSkill(SkillName.Healing, 80.1, 100.0);
            SetSkill(SkillName.MagicResist, 120.1, 130.0);
            SetSkill(SkillName.Swords, 90.1, 100.0);
            SetSkill(SkillName.Tactics, 95.1, 100.0);
            SetSkill(SkillName.Wrestling, 90.1, 100.0);

            Fame  = 15000;
            Karma = -15000;

            VirtualArmor = 28;

            Container pack = new Backpack();

            pack.DropItem(new Arrow(Utility.RandomMinMax(25, 35)));
            pack.DropItem(new Arrow(Utility.RandomMinMax(25, 35)));
            pack.DropItem(new Bandage(Utility.RandomMinMax(5, 15)));
            pack.DropItem(new Bandage(Utility.RandomMinMax(5, 15)));
            pack.DropItem(Loot.RandomGem());
            pack.DropItem(new ArcaneGem());

            PackItem(pack);

            AddItem(new JukaBow());

            // TODO: Bandage self
        }
Пример #29
0
        public InvasionAntLion(InvasionController c) :
            base(c, InvasionSpawnType.Ants, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name        = "an ant lion";
            Body        = 787;
            BaseSoundID = 1006;

            SetStr(296, 320);
            SetDex(81, 105);
            SetInt(36, 60);

            SetHits(151, 162);

            SetDamage(7, 21);

            SetDamageType(ResistanceType.Physical, 70);
            SetDamageType(ResistanceType.Poison, 30);

            SetResistance(ResistanceType.Physical, 45, 60);
            SetResistance(ResistanceType.Fire, 25, 35);
            SetResistance(ResistanceType.Cold, 30, 40);
            SetResistance(ResistanceType.Poison, 40, 50);
            SetResistance(ResistanceType.Energy, 30, 35);

            SetSkill(SkillName.MagicResist, 70.0);
            SetSkill(SkillName.Tactics, 90.0);
            SetSkill(SkillName.Wrestling, 90.0);

            Fame  = 4500;
            Karma = -4500;

            VirtualArmor = 45;

            PackItem(new Bone(3));
            PackItem(new FertileDirt(Utility.RandomMinMax(1, 5)));

            switch (Utility.Random(4))
            {
            case 0: PackItem(new DullCopperOre(Utility.RandomMinMax(1, 10))); break;

            case 1: PackItem(new ShadowIronOre(Utility.RandomMinMax(1, 10))); break;

            case 2: PackItem(new CopperOre(Utility.RandomMinMax(1, 10))); break;

            case 3: PackItem(new BronzeOre(Utility.RandomMinMax(1, 10))); break;
            }
        }
Пример #30
0
        public InvasionOrcBomber(InvasionController c)
            : base(c, InvasionSpawnType.Orc, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Body = 182;

            Name        = "an orc bomber";
            BaseSoundID = 0x45A;

            SetStr(147, 215);
            SetDex(91, 115);
            SetInt(61, 85);

            SetHits(95, 123);

            SetDamage(1, 8);

            SetDamageType(ResistanceType.Physical, 75);
            SetDamageType(ResistanceType.Fire, 25);

            SetResistance(ResistanceType.Physical, 25, 35);
            SetResistance(ResistanceType.Fire, 30, 40);
            SetResistance(ResistanceType.Cold, 15, 25);
            SetResistance(ResistanceType.Poison, 15, 20);
            SetResistance(ResistanceType.Energy, 25, 30);

            SetSkill(SkillName.MagicResist, 70.1, 85.0);
            SetSkill(SkillName.Swords, 60.1, 85.0);
            SetSkill(SkillName.Tactics, 75.1, 90.0);
            SetSkill(SkillName.Wrestling, 60.1, 85.0);

            Fame  = 2500;
            Karma = -2500;

            VirtualArmor = 30;

            PackItem(new SulfurousAsh(Utility.RandomMinMax(6, 10)));
            PackItem(new MandrakeRoot(Utility.RandomMinMax(6, 10)));
            PackItem(new BlackPearl(Utility.RandomMinMax(6, 10)));
            PackItem(new MortarPestle());
            PackItem(new LesserExplosionPotion());

            if (0.2 > Utility.RandomDouble())
            {
                PackItem(new BolaBall());
            }
        }