示例#1
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;
        }
示例#2
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;
        }
示例#3
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;
        }
示例#4
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;
        }
示例#5
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 );
        }
示例#6
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;
        }
示例#7
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;
        }
示例#8
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;
        }
示例#9
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;
        }
示例#10
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;
        }
示例#11
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt(); // version

            Controller = (InvasionController)reader.ReadItem();
        }
示例#12
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;
        }
示例#13
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;
        }
示例#14
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;
        }
示例#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 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() );
        }
示例#17
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;
        }
示例#18
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;
        }
示例#19
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 ) );
        }
示例#20
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);
        }
示例#21
0
文件: Orc.cs 项目: evildude807/kaltar
        public InvasionOrc(InvasionController c)
            : base(c, InvasionSpawnType.Orc, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name = NameList.RandomName( "orc" );
            Body = 17;
            BaseSoundID = 0x45A;

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

            SetHits( 58, 72 );

            SetDamage( 5, 7 );

            SetDamageType( ResistanceType.Physical, 100 );

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

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

            Fame = 1500;
            Karma = -1500;

            VirtualArmor = 28;

            switch ( Utility.Random( 20 ) )
            {
                case 0: PackItem( new Scimitar() ); break;
                case 1: PackItem( new Katana() ); break;
                case 2: PackItem( new WarMace() ); break;
                case 3: PackItem( new WarHammer() ); break;
                case 4: PackItem( new Kryss() ); break;
                case 5: PackItem( new Pitchfork() ); break;
            }

            PackItem( new ThighBoots() );

            switch ( Utility.Random( 3 ) )
            {
                case 0: PackItem( new Ribs() ); break;
                case 1: PackItem( new Shaft() ); break;
                case 2: PackItem( new Candle() ); break;
            }

            if ( 0.2 > Utility.RandomDouble() )
                PackItem( new BolaBall() );
        }
示例#22
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;
            }
        }
示例#23
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
        }
示例#24
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() );
        }
示例#25
0
        public InvasionBeacon(InvasionController controller)
            : base(18212, 39299, 1)
        {
            Controller = controller;
            Component = new BeaconItem(this);

            Name = "lighthouse";

            ResistBasePhys = 50;
            ResistBaseFire = 85;
            ResistBaseCold = 99;
            ResistBasePoison = 99;
            ResistBaseEnergy = 70;

            Level = ItemLevel.Easy; // Hard
        }
示例#26
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() );
        }
示例#27
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;
            }
        }
示例#28
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() );
        }
示例#29
0
        public InvasionWandererOfTheVoid(InvasionController c)
            : base(c, InvasionSpawnType.AOS, AIType.AI_Mage, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name = "a wanderer of the void";
            Body = 316;
            BaseSoundID = 377;

            SetStr( 111, 200 );
            SetDex( 101, 125 );
            SetInt( 301, 390 );

            SetHits( 351, 400 );

            SetDamage( 11, 13 );

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

            SetResistance( ResistanceType.Physical, 40, 50 );
            SetResistance( ResistanceType.Fire, 15, 25 );
            SetResistance( ResistanceType.Cold, 40, 50 );
            SetResistance( ResistanceType.Poison, 50, 75 );
            SetResistance( ResistanceType.Energy, 40, 50 );

            SetSkill( SkillName.EvalInt, 60.1, 70.0 );
            SetSkill( SkillName.Magery, 60.1, 70.0 );
            SetSkill( SkillName.Meditation, 60.1, 70.0 );
            SetSkill( SkillName.MagicResist, 50.1, 75.0 );
            SetSkill( SkillName.Tactics, 60.1, 70.0 );
            SetSkill( SkillName.Wrestling, 60.1, 70.0 );

            Fame = 20000;
            Karma = -20000;

            VirtualArmor = 44;

            int count = Utility.RandomMinMax( 2, 3 );

            for ( int i = 0; i < count; ++i )
                PackItem( new TreasureMap( 3, Map.Trammel ) );
        }
示例#30
0
        public InvasionWhippingVine(InvasionController c)
            : base(c, InvasionSpawnType.Plant, AIType.AI_Melee, FightMode.Closest, new double[] { 10, 1, 0.2, 0.4 })
        {
            Name = "a whipping vine";
            Body = 8;
            Hue = 0x851;
            BaseSoundID = 352;

            SetStr( 251, 300 );
            SetDex( 76, 100 );
            SetInt( 26, 40 );

            SetMana( 0 );

            SetDamage( 7, 25 );

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

            SetResistance( ResistanceType.Physical, 75, 85 );
            SetResistance( ResistanceType.Fire, 15, 25 );
            SetResistance( ResistanceType.Cold, 15, 25 );
            SetResistance( ResistanceType.Poison, 75, 85 );
            SetResistance( ResistanceType.Energy, 35, 45 );

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

            Fame = 1000;
            Karma = -1000;

            VirtualArmor = 45;

            PackReg( 3 );
            PackItem( new FertileDirt( Utility.RandomMinMax( 1, 10 ) ) );

            if ( 0.2 >= Utility.RandomDouble() )
                PackItem( new ExecutionersCap() );

            PackItem( new Vines() );
        }
示例#31
0
        public InvasionBlackSolenWarrior(InvasionController c)
            : base(c, InvasionSpawnType.Ants, AIType.AI_Melee, FightMode.Closest, new double[]{10, 1, 0.2, 0.4})
        {
            Name = "a black solen warrior";
            Body = 806;
            BaseSoundID = 959;
            Hue = 0x453;

            SetStr( 196, 220 );
            SetDex( 101, 125 );
            SetInt( 36, 60 );

            SetHits( 96, 107 );

            SetDamage( 5, 15 );

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

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

            SetSkill( SkillName.MagicResist, 60.0 );
            SetSkill( SkillName.Tactics, 80.0 );
            SetSkill( SkillName.Wrestling, 80.0 );

            Fame = 3000;
            Karma = -3000;

            VirtualArmor = 35;

            SolenHelper.PackPicnicBasket( this );

            PackItem( new ZoogiFungus( ( 0.05 > Utility.RandomDouble() )? 13 : 3 ) );

            if ( Utility.RandomDouble() < 0.05 )
                PackItem( new BraceletOfBinding() );
        }
示例#32
0
 public InvasionOrc(InvasionController c)
     : base(c)
 {
     Controller = c;
     RandomSpawn();
 }
示例#33
0
 public InvasionRegion(InvasionController c)
     : base("InvasionRegion", c.RegionMap, 100, c.RegionPoint)
 {
     Controller = c;
     this.Register();
 }
示例#34
0
 public InvasionSpawn(InvasionController c)
     : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
 {
     Controller = c;
 }
示例#35
0
 public InvasionReptile(InvasionController c)
     : base(c)
 {
     Controller = c;
     RandomSpawn();
 }
示例#36
0
 public InvasionArachnid(InvasionController c)
     : base(c)
 {
     Controller = c;
     RandomSpawn();
 }