public void TestInitialize()
 {
     itemToBeAdded     = new List <GameObject>();
     itemToBeDeleted   = new List <GameObject>();
     allObject         = new List <GameObject>();
     testPlayer        = new Player.Player(200, 200);
     testMediator      = new Mediator(allObject, itemToBeAdded, itemToBeDeleted, testPlayer, testRoom, TestState);
     testRoom          = new Room(800, 400, testMediator);
     testMediator.room = testRoom;
     testWall          = new Wall(200, 200, testMediator);
     testMonster       = new Creep.Creep(200, 200, testMediator);
     testMonster2      = new Creep.Creep(200, 200, testMediator);
     HpPlus            = 100;
     testHpBoost       = new HpBoost(HpPlus, 200, 200, testMediator);
     testMSBoost       = new MsBoost(200, 200, testMediator);
     ExpectedMs        = testMSBoost.SpeedBoost;
     testCrossbow      = new Crossbow(200, 200, testMediator);
     testBow           = new FrozenBow(200, 200, testMediator);
     testGun           = new SimpleGun(200, 200, testMediator);
     testWand          = new Wand(200, 200, testMediator);
     testLaveTile      = new LavaTile(200, 200, 5, testMediator);
     testDoor          = new Door(200, 200, testMediator, true);
     FBProjectile      = new FrozenBowProjectile(200, 200, Direction.NORTH, testMediator);
     WProjectile       = new WandProjectile(200, 200, Direction.NORTH, testMediator);
     SGProjectile      = new SimpleGunProjectile(200, 200, Direction.NORTH, testMediator);
     CBProjectile      = new CrossbowProjectile(200, 200, Direction.NORTH, testMediator);
 }
        public override void OnAfterSpawn()
        {
            base.OnAfterSpawn();
            Server.Misc.TavernPatrons.RemoveSomeGear(this, false);
            Server.Misc.MorphingTime.CheckNecromancer(this);
            Server.Items.EssenceBase.ColorCitizen(this);
            Item bow = new Bow();

            bow.Delete();
            switch (Utility.RandomMinMax(1, 6))
            {
            case 1: bow = new Bow();                                break;

            case 2: bow = new Crossbow();                   break;

            case 3: bow = new HeavyCrossbow();              break;

            case 4: bow = new CompositeBow();               break;

            case 5: bow = new Yumi();                               break;

            case 6: bow = new RepeatingCrossbow();  break;
            }
            bow.Movable = false;
            AddItem(bow);
        }
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public static Item CreateBowItem()
        {
            Item item = null;

            int nType = Utility.RandomMinMax(0, 7);

            switch (nType)
            {
            case 0:         item = new Crossbow();                          item.Name = "crossbow";                         break;

            case 1:         item = new HeavyCrossbow();                     item.Name = "heavy crossbow";           break;

            case 2:         item = new RepeatingCrossbow();         item.Name = "repeating crossbow";       break;

            case 3:         item = new CompositeBow();                      item.Name = "composite bow";            break;

            case 4:         item = new Bow();                                       item.Name = "bow";                                      break;

            case 5:         item = new ElvenCompositeLongbow();     item.Name = "woodland longbow";         break;

            case 6:         item = new MagicalShortbow();           item.Name = "woodland shortbow";                break;

            case 7:         item = new Yumi();                                      item.Name = "yumi";                                     break;
            }

            return(item);
        }
        public override void InitOutfit()
        {
            Hue = Utility.RandomList(3, 28, 38, 48, 53, 58, 63, 88, 93);

            SetStr(57);
            SetDex(91);
            SetInt(11);

            SetSkill(SkillName.Anatomy, 59.5, 68.7);
            SetSkill(SkillName.Archery, 80.0, 100.0);
            SetSkill(SkillName.Fletching, 80.0, 100.0);
            SetSkill(SkillName.Tactics, 60.0, 83.0);
            SetSkill(SkillName.Wrestling, 61.0, 93.0);

            PackGold(14, 46);
            PackItem(new Bolt(Utility.RandomMinMax(20, 30)));

            Crossbow weapon = new Crossbow();

            weapon.Movable = true;
            weapon.Quality = WeaponQuality.Exceptional;
            AddItem(weapon);

            if (this.Female = Utility.RandomBool())
            {
                Body = 386;
                Name = NameList.RandomName("female");
            }
            else
            {
                Body = 390;
                Name = NameList.RandomName("male");
            }
        }
    // Use this for initialization
    void Start()
    {
        cBow = GameObject.Find("Crossbow");
        rigi = gameObject.GetComponent <Rigidbody>();
        Crossbow cBowRef = cBow.GetComponent <Crossbow>();

        locDirection = cBowRef.projectileOrigin.transform.InverseTransformDirection(Vector3.forward);
    }
Exemple #6
0
        public void CannotPutCrossbowInPotionPack()
        {
            PotionPack pp       = new PotionPack("Small potion sack", 2, 4);
            Crossbow   bow      = new Crossbow("Crossbow of the Hawk", 2, 10);
            bool       expected = false;
            bool       actual   = pp.Add(bow);

            Assert.AreEqual(expected, actual);
        }
Exemple #7
0
        public void CanAddCrossbowToBackPack()
        {
            Backpack bp       = new Backpack("Small Backpack", 3, 4);
            Crossbow bow      = new Crossbow("Terrible crossbow", 3, 4);
            bool     expected = true;
            bool     actual   = bp.Add(bow);

            Assert.AreEqual(expected, actual);
        }
        public SoulboundPirateRaider()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name = "a soulbound pirate raider";
            Body = 0x190;
            Hue  = Utility.RandomSkinHue();
            Utility.AssignRandomHair(this);

            SetStr(150, 200);
            SetDex(125, 150);
            SetInt(95, 110);

            SetHits(200, 250);

            SetDamage(15, 25);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            SetSkill(SkillName.MagicResist, 50.0, 75.5);
            SetSkill(SkillName.Archery, 90.0, 105.5);
            SetSkill(SkillName.Tactics, 90.0, 105.5);
            SetSkill(SkillName.Anatomy, 90.0, 105.5);

            Fame  = 2000;
            Karma = -2000;

            AddItem(new TricorneHat());
            AddItem(new LeatherArms());
            AddItem(new FancyShirt());
            AddItem(new ShortPants());
            AddItem(new Cutlass());
            AddItem(new Boots(Utility.RandomNeutralHue()));
            AddItem(new GoldEarrings());

            Item bow;

            switch (Utility.Random(4))
            {
            default:
            case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;

            case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;

            case 2: bow = new Bow(); PackItem(new Arrow(25)); break;

            case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            AddItem(bow);
        }
Exemple #9
0
    protected override void Awake()
    {
        mUnitType = UnitType.Archer;
        base.Awake();
        this.InitializeStats();

        mMeleeWeapon   = new Dagger(mLevel);
        mRangedWeapon  = new Crossbow(mLevel);
        mCurrentWeapon = mRangedWeapon;
    }
    protected override void Awake()
    {
        mUnitType = UnitType.Archer;
        base.Awake();
        this.InitializeStats();

        mMeleeWeapon = new Dagger (mLevel);
        mRangedWeapon = new Crossbow (mLevel);
        mCurrentWeapon = mRangedWeapon;
    }
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Hatchet", typeof(Hatchet), Hatchet.GetSBPurchaseValue(), 50, 0xF43, 0));
                Add(new GenericBuyInfo("Saw", typeof(Saw), Saw.GetSBPurchaseValue(), 50, 0x1034, 0));

                Add(new GenericBuyInfo("Arrow", typeof(Arrow), Arrow.GetSBPurchaseValue(), 500, 0xF3F, 0));
                Add(new GenericBuyInfo("Bolt", typeof(Bolt), Bolt.GetSBPurchaseValue(), 500, 0x1BFB, 0));

                Add(new GenericBuyInfo("Bow", typeof(Bow), Bow.GetSBPurchaseValue(), 25, 0x13B2, 0));
                Add(new GenericBuyInfo("Crossbow", typeof(Crossbow), Crossbow.GetSBPurchaseValue(), 25, 0xF50, 0));
                Add(new GenericBuyInfo("Heavy Crossbow", typeof(HeavyCrossbow), HeavyCrossbow.GetSBPurchaseValue(), 25, 0x13FD, 0));
            }
Exemple #12
0
        public PirateCrew() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, .2, .4)
        {
            Name = NameList.RandomName("orc");
            Body = Utility.RandomList(17, 182, 7, 138, 140);

            bool mage = 0.33 > Utility.RandomDouble();

            SetStr(100, 125);
            SetDex(125, 150);
            SetInt(250, 400);
            SetHits(250, 400);
            SetDamage(15, 25);

            if (mage)
            {
                ChangeAIType(AIType.AI_Mage);
                SetSkill(SkillName.Magery, 100.0, 120.0);
                SetSkill(SkillName.EvalInt, 100.0, 120.0);
                SetSkill(SkillName.Meditation, 100.0, 120.0);
                SetSkill(SkillName.MagicResist, 100.0, 120.0);
            }

            SetSkill(SkillName.Archery, 100.0, 120.0);
            SetSkill(SkillName.Tactics, 100.0, 120.0);
            SetSkill(SkillName.Wrestling, 100.0, 120.0);
            SetSkill(SkillName.Anatomy, 100.0, 120.0);

            SetDamageType(ResistanceType.Physical, 70);
            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            Item bow;

            switch (Utility.Random(4))
            {
            default:
            case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;

            case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;

            case 2: bow = new Bow(); PackItem(new Arrow(25)); break;

            case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            AddItem(bow);

            Fame  = 8000;
            Karma = -8000;
        }
            public InternalSellInfo()
            {
                Add(typeof(Hatchet), Hatchet.GetSBSellValue());
                Add(typeof(Saw), Saw.GetSBSellValue());

                //Add(typeof(Arrow), Arrow.GetSBSellValue());
                //Add(typeof(Bolt), Bolt.GetSBSellValue());

                Add(typeof(Bow), Bow.GetSBSellValue());
                Add(typeof(Crossbow), Crossbow.GetSBSellValue());
                Add(typeof(HeavyCrossbow), HeavyCrossbow.GetSBSellValue());
            }
Exemple #14
0
        public void CannotAddThreeCrossbowToBackpack()
        {
            Backpack bp       = new Backpack("Small Backpack", 3, 4);
            Crossbow bow      = new Crossbow("Terrible Crossbow", 3, 4);
            Crossbow tooBig   = new Crossbow("Terrible Crossbow", 3, 4);
            bool     expected = false;

            bp.Add(bow);
            bool actual = bp.Add(tooBig);

            Assert.AreEqual(expected, actual);
        }
Exemple #15
0
        public void CannotAddTwoCrossboawsToBackpack()
        {
            Backpack bp      = new Backpack("Small Backpack", 3, 4);
            Crossbow bow     = new Crossbow("Terrible crossbow", 3, 4);
            Crossbow tooMany = new Crossbow("Janky crossbow", 3, 4);

            bool expected = false;

            bp.Add(bow);
            bool actual = bp.Add(tooMany);

            Assert.AreEqual(expected, actual);
        }
    void Start()
    {
        mWeapons = new SortedList();

        Weapon crossbow = new Crossbow();
        mCurrentWeapon = crossbow;
        mWeapons.Add (crossbow.Range, crossbow);

        Weapon dagger = new Dagger();
        mWeapons.Add (dagger.Range, dagger);

        mHealth = mDefaultHealth;
        mPreviousHealth = mHealth;
        mSprites = null;
    }
Exemple #17
0
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Hatchet", typeof(Hatchet), Hatchet.GetSBPurchaseValue(), 50, 0xF43, 0));
                Add(new GenericBuyInfo("Saw", typeof(Saw), Saw.GetSBPurchaseValue(), 50, 0x1034, 0));

                Add(new GenericBuyInfo("Arrow", typeof(Arrow), Arrow.GetSBPurchaseValue(), 500, 0xF3F, 0));
                Add(new GenericBuyInfo("Bolt", typeof(Bolt), Bolt.GetSBPurchaseValue(), 500, 0x1BFB, 0));

                Add(new GenericBuyInfo("Bow", typeof(Bow), Bow.GetSBPurchaseValue(), 25, 0x13B2, 0));
                Add(new GenericBuyInfo("Crossbow", typeof(Crossbow), Crossbow.GetSBPurchaseValue(), 25, 0xF50, 0));
                Add(new GenericBuyInfo("Heavy Crossbow", typeof(HeavyCrossbow), HeavyCrossbow.GetSBPurchaseValue(), 25, 0x13FD, 0));

                Add(new AnimalBuyInfo(1, "Eagle", typeof(Eagle), Eagle.GetSBPurchaseValue(), 10, 0x5, 0));
                Add(new AnimalBuyInfo(1, "Panther", typeof(Panther), Panther.GetSBPurchaseValue(), 10, 0xD6, 0));
                Add(new AnimalBuyInfo(1, "Timber Wolf", typeof(TimberWolf), TimberWolf.GetSBPurchaseValue(), 10, 0xE1, 0));
                Add(new AnimalBuyInfo(1, "Brown Bear", typeof(BrownBear), BrownBear.GetSBPurchaseValue(), 10, 0xA7, 0));
                Add(new AnimalBuyInfo(1, "Grizzly Bear", typeof(GrizzlyBear), GrizzlyBear.GetSBPurchaseValue(), 10, 0xD4, 0));
            }
Exemple #18
0
        public SaklethArcher() : base(AIType.AI_Archer, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Name        = NameList.RandomName("lizardman");
            Title       = "the sakkhra";
            Body        = 326;
            BaseSoundID = 417;

            SetStr(136, 165);
            SetDex(56, 75);
            SetInt(31, 55);

            SetHits(82, 99);

            SetDamage(7, 17);

            SetDamageType(ResistanceType.Physical, 100);

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

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

            Fame  = 3500;
            Karma = -3500;

            VirtualArmor = 38;

            Item weapon = new Crossbow();

            weapon.Name = "sakkhra crossbow";
            weapon.Hue  = 0x972;
            ((BaseWeapon)weapon).MaxDamage = ((BaseWeapon)weapon).MaxDamage + 5;
            ((BaseWeapon)weapon).MinDamage = ((BaseWeapon)weapon).MinDamage + 5;
            AddItem(weapon);

            PackItem(new Bolt(Utility.RandomMinMax(5, 15)));
        }
Exemple #19
0
        public void UsageTest()
        {
            Card x;

            x = new Attack(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Miss(CardSuit.Club, 0);
            Assert.AreEqual(-1, x.numOfTargets()); // this means not usable
            x = new Wine(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Peach(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Negate(CardSuit.Club, 0);
            Assert.AreEqual(-1, x.numOfTargets());
            x = new Barbarians(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new HailofArrow(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new PeachGarden(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Wealth(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Steal(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Break(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Capture(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Starvation(CardSuit.Club, 0);
            Assert.AreEqual(1, x.numOfTargets());
            x = new Crossbow(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new IceSword(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new Scimitar(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new BlackShield(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
            x = new EightTrigrams(CardSuit.Club, 0);
            Assert.AreEqual(0, x.numOfTargets());
        }
Exemple #20
0
    public override Weapon GenerateRandom()
    {
        Crossbow worstVariant = (Crossbow)WorstPossibleVariant;
        Crossbow bestVariant  = (Crossbow)BestPossibleVariant;

        // We cannot generate something if we have no valid upper or lower bounds
        if (worstVariant == null || bestVariant == null)
        {
            return(null);
        }

        // Instantiate a weapon for us to use
        Crossbow generatedCrossbow = Instantiate(worstVariant);

        // Create a Weapon reference for use with setCommonStats()
        Weapon generatedWeapon = generatedCrossbow;

        setCommonStats(ref generatedWeapon);

        return(generatedCrossbow);
    }
            public InternalBuyInfo()
            {
                Add(new GenericBuyInfo("Dagger", typeof(Dagger), Dagger.GetSBPurchaseValue(), 25, 0xF52, 0));
                Add(new GenericBuyInfo("Kryss", typeof(Kryss), Kryss.GetSBPurchaseValue(), 25, 0x1401, 0));
                Add(new GenericBuyInfo("War Fork", typeof(WarFork), WarFork.GetSBPurchaseValue(), 25, 0x1405, 0));
                Add(new GenericBuyInfo("Short Spear", typeof(ShortSpear), ShortSpear.GetSBPurchaseValue(), 25, 0x1403, 0));
                Add(new GenericBuyInfo("Pitchfork", typeof(Pitchfork), Pitchfork.GetSBPurchaseValue(), 25, 0xE87, 0));
                Add(new GenericBuyInfo("Spear", typeof(Spear), Spear.GetSBPurchaseValue(), 25, 0xF62, 0));

                Add(new GenericBuyInfo("Hammer Pick", typeof(HammerPick), HammerPick.GetSBPurchaseValue(), 25, 0x143D, 0));
                Add(new GenericBuyInfo("War Axe", typeof(WarAxe), WarAxe.GetSBPurchaseValue(), 25, 0x13B0, 0));
                Add(new GenericBuyInfo("Mace", typeof(Mace), Mace.GetSBPurchaseValue(), 25, 0xF5C, 0));
                Add(new GenericBuyInfo("Maul", typeof(Maul), Maul.GetSBPurchaseValue(), 25, 0x143B, 0));
                Add(new GenericBuyInfo("WarHammer", typeof(WarHammer), WarHammer.GetSBPurchaseValue(), 25, 0x1439, 0));
                Add(new GenericBuyInfo("War Mace", typeof(WarMace), WarMace.GetSBPurchaseValue(), 25, 0x1407, 0));

                Add(new GenericBuyInfo("Butcher Knife", typeof(ButcherKnife), ButcherKnife.GetSBPurchaseValue(), 25, 0x13F6, 0));
                Add(new GenericBuyInfo("Skinning Knife", typeof(SkinningKnife), SkinningKnife.GetSBPurchaseValue(), 25, 0xEC4, 0));
                Add(new GenericBuyInfo("Cleaver", typeof(Cleaver), Cleaver.GetSBPurchaseValue(), 25, 0xEC3, 0));
                Add(new GenericBuyInfo("Cutlass", typeof(Cutlass), Cutlass.GetSBPurchaseValue(), 25, 0x1441, 0));
                Add(new GenericBuyInfo("Katana", typeof(Katana), Katana.GetSBPurchaseValue(), 25, 0x13FF, 0));
                Add(new GenericBuyInfo("Scimitar", typeof(Scimitar), Scimitar.GetSBPurchaseValue(), 25, 0x13B6, 0));
                Add(new GenericBuyInfo("Broadsword", typeof(Broadsword), Broadsword.GetSBPurchaseValue(), 25, 0xF5E, 0));
                Add(new GenericBuyInfo("Longsword", typeof(Longsword), Longsword.GetSBPurchaseValue(), 25, 0xF61, 0));
                Add(new GenericBuyInfo("Viking Sword", typeof(VikingSword), VikingSword.GetSBPurchaseValue(), 25, 0x13B9, 0));
                Add(new GenericBuyInfo("Axe", typeof(Axe), Axe.GetSBPurchaseValue(), 25, 0xF49, 0));
                Add(new GenericBuyInfo("Battle Axe", typeof(BattleAxe), BattleAxe.GetSBPurchaseValue(), 25, 0xF47, 0));
                Add(new GenericBuyInfo("Double Axe", typeof(DoubleAxe), DoubleAxe.GetSBPurchaseValue(), 25, 0xF4B, 0));
                Add(new GenericBuyInfo("Executioner's Axe", typeof(ExecutionersAxe), ExecutionersAxe.GetSBPurchaseValue(), 25, 0xF45, 0));
                Add(new GenericBuyInfo("Large Battle Axe", typeof(LargeBattleAxe), LargeBattleAxe.GetSBPurchaseValue(), 25, 0x13FB, 0));
                Add(new GenericBuyInfo("Two-Handed Axe", typeof(TwoHandedAxe), TwoHandedAxe.GetSBPurchaseValue(), 25, 0x1443, 0));
                Add(new GenericBuyInfo("Bardiche", typeof(Bardiche), Bardiche.GetSBPurchaseValue(), 25, 0xF4D, 0));
                Add(new GenericBuyInfo("Halberd", typeof(Halberd), Halberd.GetSBPurchaseValue(), 25, 0x143E, 0));

                Add(new GenericBuyInfo("Bow", typeof(Bow), Bow.GetSBPurchaseValue(), 25, 0x13B2, 0));
                Add(new GenericBuyInfo("Crossbow", typeof(Crossbow), Crossbow.GetSBPurchaseValue(), 25, 0xF50, 0));
                Add(new GenericBuyInfo("Heavy Crossbow", typeof(HeavyCrossbow), HeavyCrossbow.GetSBPurchaseValue(), 25, 0x13FD, 0));
            }
            public InternalSellInfo()
            {
                Add(typeof(Dagger), Dagger.GetSBSellValue());
                Add(typeof(Kryss), Kryss.GetSBSellValue());
                Add(typeof(WarFork), WarFork.GetSBSellValue());
                Add(typeof(ShortSpear), ShortSpear.GetSBSellValue());
                Add(typeof(Pitchfork), Pitchfork.GetSBSellValue());
                Add(typeof(Spear), Spear.GetSBSellValue());

                Add(typeof(HammerPick), HammerPick.GetSBSellValue());
                Add(typeof(WarAxe), WarAxe.GetSBSellValue());
                Add(typeof(Mace), Mace.GetSBSellValue());
                Add(typeof(Maul), Maul.GetSBSellValue());
                Add(typeof(WarHammer), WarHammer.GetSBSellValue());
                Add(typeof(WarMace), WarMace.GetSBSellValue());

                Add(typeof(ButcherKnife), ButcherKnife.GetSBSellValue());
                Add(typeof(SkinningKnife), SkinningKnife.GetSBSellValue());
                Add(typeof(Cleaver), Cleaver.GetSBSellValue());
                Add(typeof(Cutlass), Cutlass.GetSBSellValue());
                Add(typeof(Katana), Katana.GetSBSellValue());
                Add(typeof(Scimitar), Scimitar.GetSBSellValue());
                Add(typeof(Broadsword), Broadsword.GetSBSellValue());
                Add(typeof(Longsword), Longsword.GetSBSellValue());
                Add(typeof(VikingSword), VikingSword.GetSBSellValue());
                Add(typeof(Axe), Axe.GetSBSellValue());
                Add(typeof(BattleAxe), BattleAxe.GetSBSellValue());
                Add(typeof(DoubleAxe), DoubleAxe.GetSBSellValue());
                Add(typeof(ExecutionersAxe), ExecutionersAxe.GetSBSellValue());
                Add(typeof(LargeBattleAxe), LargeBattleAxe.GetSBSellValue());
                Add(typeof(TwoHandedAxe), TwoHandedAxe.GetSBSellValue());
                Add(typeof(Bardiche), Bardiche.GetSBSellValue());
                Add(typeof(Halberd), Halberd.GetSBSellValue());

                Add(typeof(Bow), Bow.GetSBSellValue());
                Add(typeof(Crossbow), Crossbow.GetSBSellValue());
                Add(typeof(HeavyCrossbow), HeavyCrossbow.GetSBSellValue());
            }
Exemple #23
0
        public ArcherGuard(Mobile target) : base(target)
        {
            Summoned = true;

            InitStats(1000, 1000, 1000);

            SpeechHue = 0;

            Hue = Utility.RandomSkinHue();

            #region Armor
            for (int i = 0; i < m_GuardArmor.Length; ++i)
            {
                m_GuardArmor[i].Resource = GuardTheme;
                AddItem(m_GuardArmor[i]);
                m_GuardArmor[i].Movable = false;
            }
            #endregion

            #region Cloth
            BaseClothing bC = null;

            switch (Utility.Random(3))
            {
            case 0:
                bC = new Doublet();
                break;

            case 1:
                bC = new Tunic();
                break;

            case 2:
                bC       = new BodySash();
                bC.Layer = Layer.Earrings;
                break;
            }

            if (bC != null)
            {
                bC.Resource = GuardTheme;
                AddItem(bC);
                bC.Movable = false;
            }
            #endregion

            #region Male/Female
            if (Female = Utility.RandomBool())
            {
                Body = 0x191;
                if (string.IsNullOrEmpty(Name))
                {
                    Name  = NameList.RandomName("female");
                    Title = "the guard";
                }

                FemalePlateChest ar = new FemalePlateChest();
                ar.Resource = GuardTheme;
                AddItem(ar);
                ar.Movable = false;
            }
            else
            {
                Body = 0x190;
                if (string.IsNullOrEmpty(Name))
                {
                    Name  = NameList.RandomName("male");
                    Title = "the guard";
                }

                PlateChest ar = new PlateChest();
                ar.Resource = GuardTheme;
                AddItem(ar);
                ar.Movable = false;
            }
            #endregion

            Utility.AssignRandomHair(this);

            if (Utility.RandomBool())
            {
                Utility.AssignRandomFacialHair(this, HairHue);
            }

            Container pack = new Backpack();
            pack.Movable = false;
            pack.DropItem(new Gold(10, 25));
            AddItem(pack);

            #region Weapon
            BaseWeapon weapon;
            Item       ammo;

            switch (Utility.Random(3))
            {
            case 1:
                weapon = new Bow();
                ammo   = new Arrow(250);
                break;

            case 2:
                weapon = new Crossbow();
                ammo   = new Bolt(250);
                break;

            case 3:
                weapon = new HeavyCrossbow();
                ammo   = new Bolt(250);
                break;

            default:
                weapon = new Bow();
                ammo   = new Arrow(250);
                break;
            }

            weapon.Crafter   = this;
            weapon.Resource  = GuardTheme;
            weapon.Quality   = WeaponQuality.Exceptional;
            weapon.Speed     = 1;
            weapon.MinDamage = 10000;
            weapon.MaxDamage = 10000;
            AddItem(weapon);
            weapon.Movable = false;

            AddItem(ammo);
            ammo.LootType = LootType.Blessed;
            #endregion

            Skills[SkillName.Anatomy].Base      = 120.0;
            Skills[SkillName.Tactics].Base      = 125.0;
            Skills[SkillName.Archery].Base      = 100.0;
            Skills[SkillName.MagicResist].Base  = 120.0;
            Skills[SkillName.DetectHidden].Base = 100.0;

            if (Utility.RandomDouble() <= 0.1)
            {
                new Horse().Rider = this;
            }

            NextCombatTime = DateTime.Now + TimeSpan.FromSeconds(1.0);
            Focus          = target;
        }
Exemple #24
0
        public override void GenerateItems()
        {
            int colorTheme  = Utility.RandomDyedHue();
            int customTheme = 0;

            m_Items.Add(new ChainmailLegs()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new RingmailGloves()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new StuddedGorget()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new RingmailArms()
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new Boots()
            {
                LootType = LootType.Blessed
            });

            m_Items.Add(new FancyShirt(colorTheme)
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new BodySash(colorTheme)
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new Kilt(colorTheme)
            {
                LootType = LootType.Blessed
            });
            m_Items.Add(new SkullCap(colorTheme)
            {
                LootType = LootType.Blessed
            });

            switch (Utility.RandomMinMax(1, 6))
            {
            case 1: { m_Items.Add(new VikingSword()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 2: { m_Items.Add(new Longsword()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 3: { m_Items.Add(new WarMace()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 4: { m_Items.Add(new Maul()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new MetalShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 5: { m_Items.Add(new BlackStaff()
                    {
                        LootType = LootType.Blessed
                    }); break; }

            case 6: { m_Items.Add(new Axe()
                    {
                        LootType = LootType.Blessed
                    }); break; }
            }

            Crossbow bow = new Crossbow();

            bow.LootType = LootType.Blessed;
            m_Items.Add(bow);

            Utility.AssignRandomHair(this, Utility.RandomHairHue());
        }
Exemple #25
0
        public override void GenerateItems()
        {
            int colorTheme  = Utility.RandomDyedHue();
            int customTheme = 0;

            m_Items.Add(new Boots()
            {
                LootType = LootType.Blessed
            });

            switch (Utility.RandomMinMax(1, 2))
            {
            case 1: m_Items.Add(new LeatherLegs()
                {
                    LootType = LootType.Blessed
                }); break;

            case 2: m_Items.Add(new StuddedLegs()
                {
                    LootType = LootType.Blessed
                }); break;
            }

            switch (Utility.RandomMinMax(1, 2))
            {
            case 1: m_Items.Add(new LeatherArms()
                {
                    LootType = LootType.Blessed
                }); break;

            case 2: m_Items.Add(new StuddedArms()
                {
                    LootType = LootType.Blessed
                }); break;
            }

            switch (Utility.RandomMinMax(1, 2))
            {
            case 1: m_Items.Add(new LeatherGloves()
                {
                    LootType = LootType.Blessed
                }); break;

            case 2: m_Items.Add(new StuddedGloves()
                {
                    LootType = LootType.Blessed
                }); break;
            }

            switch (Utility.RandomMinMax(1, 2))
            {
            case 1: m_Items.Add(new LeatherGorget()
                {
                    LootType = LootType.Blessed
                }); break;

            case 2: m_Items.Add(new StuddedGorget()
                {
                    LootType = LootType.Blessed
                }); break;
            }

            m_Items.Add(new Bandana(colorTheme)
            {
                LootType = LootType.Blessed
            });

            switch (Utility.RandomMinMax(1, 6))
            {
            case 1: { m_Items.Add(new Cutlass()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new WoodenShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 2: { m_Items.Add(new Scimitar()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new WoodenShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 3: { m_Items.Add(new Mace()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new WoodenShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 4: { m_Items.Add(new WarFork()
                    {
                        LootType = LootType.Blessed
                    }); m_Items.Add(new WoodenShield()
                    {
                        Hue = customTheme, LootType = LootType.Blessed
                    }); break; }

            case 5: { m_Items.Add(new Axe()
                    {
                        LootType = LootType.Blessed
                    }); break; }

            case 6: { m_Items.Add(new Spear()
                    {
                        LootType = LootType.Blessed
                    }); break; }
            }

            Crossbow bow = new Crossbow();

            bow.LootType = LootType.Blessed;
            m_Items.Add(bow);

            Utility.AssignRandomHair(this, Utility.RandomHairHue());
        }
Exemple #26
0
        public override void OnResponse(NetState state, RelayInfo info)           //Function for GumpButtonType.Reply Buttons
        {
            Mobile       from   = state.Mobile;
            PlayerMobile pm     = from as PlayerMobile;
            PlayerModule module = pm.PlayerModule;

            m_cost = 50;            //MOD COST OF WEAPON HERE!!
            Item      wep  = from.FindItemOnLayer(Layer.FirstValid);
            Item      weps = from.FindItemOnLayer(Layer.TwoHanded);
            Container pack = from.Backpack;

            if (wep != null)
            {
                pack.TryDropItem(from, wep, false);
            }

            if (weps != null)
            {
                pack.TryDropItem(from, weps, false);
            }

            switch (info.ButtonID)
            {
            case 0:                     //Cancel
            {
                from.SendMessage("You decide against spending your skill points.");
                //from.SendGump( new LevelGump( from ) );
                break;
            }

            case 1:                     //Katana
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Katana kat = new Katana();
                    (( Item )kat).Name = "Katana [Level Item]";
                    kat.Identified     = true;                                //Prevents others from being used in the upgrading!
                    kat.LootType       = LootType.Blessed;
                    from.EquipItem(kat);
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 2:                     //Broad Sword
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Broadsword bs = new Broadsword();
                    bs.Identified = true;
                    bs.Name       = "Broadsword";
                    bs.LootType   = LootType.Blessed;
                    from.EquipItem(bs);
                    from.SendMessage(102, "You chose a Broadsword");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 3:                     //Scimitar
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Scimitar sc = new Scimitar();
                    sc.Identified = true;
                    sc.Name       = "Scimitar";
                    sc.LootType   = LootType.Blessed;
                    from.EquipItem(sc);
                    from.SendMessage(102, "You chose a Scimitar");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 4:                     //Viking sword
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    VikingSword vs = new VikingSword();
                    vs.Identified = true;
                    vs.Name       = "Vikingsword";
                    vs.LootType   = LootType.Blessed;
                    from.EquipItem(vs);
                    from.SendMessage(102, "You chose a Viking Sword");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 5:                     //Halberd
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Halberd hb = new Halberd();
                    hb.Identified = true;
                    hb.Name       = "Halberd";
                    hb.LootType   = LootType.Blessed;
                    from.EquipItem(hb);
                    from.SendMessage(102, "You chose a Halberd");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 6:                     //Bardiche
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Bardiche bd = new Bardiche();
                    bd.Identified = true;
                    bd.Name       = "Bardiche";
                    bd.LootType   = LootType.Blessed;
                    from.EquipItem(bd);
                    from.SendMessage(102, "You chose a Bardiche");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 7:                     //Double Axe
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    DoubleAxe da = new DoubleAxe();
                    da.Identified = true;
                    da.Name       = "Double Axe";
                    da.LootType   = LootType.Blessed;
                    from.EquipItem(da);
                    from.SendMessage(102, "You chose a Double Axe");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 8:                     //Large Battle Axe
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    LargeBattleAxe lba = new LargeBattleAxe();
                    lba.Identified = true;
                    lba.Name       = "Large Battle Axe";
                    lba.LootType   = LootType.Blessed;
                    from.EquipItem(lba);
                    from.SendMessage(102, "You chose a Large Battle Axe");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 9:                     //Axe
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Axe a = new Axe();
                    a.Identified = true;
                    a.Name       = "Axe";
                    a.LootType   = LootType.Blessed;
                    from.EquipItem(a);
                    from.SendMessage(102, "You chose an Axe");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 10:                     //Kryss
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Kryss k = new Kryss();
                    k.Identified = true;
                    k.Name       = "Kryss";
                    k.LootType   = LootType.Blessed;
                    from.EquipItem(k);
                    from.SendMessage(102, "You chose a Kryss");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 11:                     //War Fork
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    WarFork wf = new WarFork();
                    wf.Identified = true;
                    wf.Name       = "War Fork";
                    wf.LootType   = LootType.Blessed;
                    from.EquipItem(wf);
                    from.SendMessage(102, "You chose a War Fork");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 12:                     //Dagger
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Dagger d = new Dagger();
                    d.Identified = true;
                    d.Name       = "Dagger";
                    d.LootType   = LootType.Blessed;
                    from.EquipItem(d);
                    from.SendMessage(102, "You chose a Dagger");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 13:                     //Pike
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Pike p = new Pike();
                    p.Identified = true;
                    p.Name       = "Pike";
                    p.LootType   = LootType.Blessed;
                    from.EquipItem(p);
                    from.SendMessage(102, "You chose a Pike");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 14:                     //Short Spear
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    ShortSpear ss = new ShortSpear();
                    ss.Identified = true;
                    ss.Name       = "Short Spear";
                    ss.LootType   = LootType.Blessed;
                    from.EquipItem(ss);
                    from.SendMessage(102, "You chose a Short Spear");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 15:                     //Long Spear
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Spear ls = new Spear();
                    ls.Identified = true;
                    ls.Name       = "Long Spear";
                    ls.LootType   = LootType.Blessed;
                    from.EquipItem(ls);
                    from.SendMessage(102, "You chose a Long Spear");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 16:                     //Pitchfork
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Pitchfork p = new Pitchfork();
                    p.Identified = true;
                    p.Name       = "Pitchfork";
                    p.LootType   = LootType.Blessed;
                    from.EquipItem(p);
                    from.SendMessage(102, "You chose a Pitchfork");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 17:                     //lance
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Lance l = new Lance();
                    l.Identified = true;
                    l.Name       = "Lance";
                    l.LootType   = LootType.Blessed;
                    from.EquipItem(l);
                    from.SendMessage(102, "You chose a Lance");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 18:                     //Sai's
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Sai s = new Sai();
                    s.Identified = true;
                    s.Name       = "Sai";
                    s.LootType   = LootType.Blessed;
                    from.EquipItem(s);
                    from.SendMessage(102, "You chose Sai's");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 19:                     //War Mace
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    WarMace wm = new WarMace();
                    wm.Identified = true;
                    wm.Name       = "War Mace";
                    wm.LootType   = LootType.Blessed;
                    from.EquipItem(wm);
                    from.SendMessage(102, "You chose a War Mace");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 20:                     //War Hammer
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    WarHammer wh = new WarHammer();
                    wh.Identified = true;
                    wh.Name       = "War Hammer";
                    wh.LootType   = LootType.Blessed;
                    from.EquipItem(wh);
                    from.SendMessage(102, "You chose a War Hammer");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 21:                     //Maul
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Maul w = new Maul();
                    w.Identified = true;
                    w.Name       = "Maul";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Maul");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 22:                     //Club
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Club w = new Club();
                    w.Identified = true;
                    w.Name       = "Club";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Club");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 23:                     //Q Staff
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    QuarterStaff w = new QuarterStaff();
                    w.Identified = true;
                    w.Name       = "Quarter Staff";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Quarter Staff");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 24:                     //G Staff
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    GnarledStaff w = new GnarledStaff();
                    w.Identified = true;
                    w.Name       = "Gnarled Staff";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Gnarled Staff");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 25:                     //B Staff
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    BlackStaff w = new BlackStaff();
                    w.Identified = true;
                    w.Name       = "BlackStaff";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Black Staff");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 26:                     //Hammer Pick
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    HammerPick w = new HammerPick();
                    w.Identified = true;
                    w.Name       = "Hammer Pick";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Hammer Pick");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 27:                     //War Axe
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    WarAxe w = new WarAxe();
                    w.Identified = true;
                    w.Name       = "War Axe";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a War Axe");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 28:                     //Bow
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Bow w = new Bow();
                    w.Identified = true;
                    w.Name       = "Bow";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Bow");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 29:                     //Composite Bow
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    CompositeBow w = new CompositeBow();
                    w.Identified = true;
                    w.Name       = "Composite Bow";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Composite Bow");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 30:                     //Crossbow
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Crossbow w = new Crossbow();
                    w.Identified = true;
                    w.Name       = "Crossbow";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Crossbow");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 31:                     //Heavy Crossbow
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    HeavyCrossbow w = new HeavyCrossbow();
                    w.Identified = true;
                    w.Name       = "Heavy Crossbow";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Heavy Crossbow");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 32:                     //Repeating Crossbow
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    RepeatingCrossbow w = new RepeatingCrossbow();
                    w.Identified = true;
                    w.Name       = "Repeating Crossbow";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Repeating Crossbow");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }

            case 33:                     //Yumi
            {
                if (module.SkillPts < m_cost)
                {
                    from.SendMessage(37, "Not enough skill points!");
                }
                else
                {
                    module.SkillPts -= m_cost;
                    Yumi w = new Yumi();
                    w.Identified = true;
                    w.Name       = "Yumi";
                    w.LootType   = LootType.Blessed;
                    from.EquipItem(w);
                    from.SendMessage(102, "You chose a Yumi");
                }

                from.SendGump(new WepUpgradeGump(from));
                break;
            }
            }
        }
Exemple #27
0
        static void Main(string[] args)
        {
            Axe   axeSoldier   = new Axe();
            Sword swordSoldier = new Sword();
            Spear spearSoldier = new Spear();

            Bow      bowSoldier     = new Bow();
            Crossbow cbSoldier      = new Crossbow();
            Javelin  javelinSoldier = new Javelin();

            string choice = "y";

            while (choice == "y")
            {
                Console.WriteLine("Which Unit of your army do you wish to view:" +
                                  "\nMelee \tRanged\nPlease select one to view");
                string answer = Console.ReadLine();

                switch (answer)
                {
                case "Melee":
                    Console.Clear();
                    Console.WriteLine("There are 3 types of melee units in this army:" +
                                      "\nSword \tAxe \tSpear\nSelect one");
                    answer = Console.ReadLine();
                    switch (answer)
                    {
                    case "Sword":
                        swordSoldier.Health();
                        swordSoldier.Armor();
                        swordSoldier.Attack();
                        swordSoldier.speed();
                        break;

                    case "Axe":
                        axeSoldier.Health();
                        axeSoldier.Armor();
                        axeSoldier.Attack();
                        axeSoldier.speed();
                        break;

                    case "Spear":
                        spearSoldier.Health();
                        spearSoldier.Armor();
                        spearSoldier.Attack();
                        spearSoldier.speed();
                        break;

                    default:
                        Console.WriteLine($"{answer} is not a feature of this army.");
                        break;
                    }
                    break;

                case "Ranged":
                    Console.Clear();
                    Console.WriteLine("There are 3 types of melee units in this army:" +
                                      "\nBow \tCrossbow \tJavelin\nSelect one");
                    answer = Console.ReadLine();
                    switch (answer)
                    {
                    case "Bow":
                        bowSoldier.Health();
                        bowSoldier.Armor();
                        bowSoldier.Attack();
                        bowSoldier.speed();
                        break;

                    case "Crossbow":
                        cbSoldier.Health();
                        cbSoldier.Armor();
                        cbSoldier.Attack();
                        cbSoldier.speed();
                        break;

                    case "Javelin":
                        javelinSoldier.Health();
                        javelinSoldier.Armor();
                        javelinSoldier.Attack();
                        javelinSoldier.speed();
                        break;

                    default:
                        Console.WriteLine($"{answer} is not a feature of this army.");
                        break;
                    }
                    break;
                }
                Console.WriteLine("Do you wish to continue viewing your army? y/n");
                choice = Console.ReadLine();
                Console.Clear();
            }
        }
Exemple #28
0
        public MerchantCrew()
            : base(AIType.AI_Paladin, FightMode.Aggressor, 10, 1, .2, .4)
        {
            Title = "the merchant";
            Hue   = Race.RandomSkinHue();

            if (Female = Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");
                AddItem(new Skirt(Utility.RandomNeutralHue()));
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
            }

            bool magery = 0.33 > Utility.RandomDouble();

            SetStr(100, 125);
            SetDex(125, 150);
            SetInt(250, 400);
            SetHits(250, 400);
            SetDamage(15, 25);

            if (magery)
            {
                ChangeAIType(AIType.AI_Mage);
                SetSkill(SkillName.Magery, 100.0, 120.0);
                SetSkill(SkillName.EvalInt, 100.0, 120.0);
                SetSkill(SkillName.Meditation, 100.0, 120.0);
                SetSkill(SkillName.MagicResist, 100.0, 120.0);
            }

            SetSkill(SkillName.Archery, 100.0, 120.0);
            SetSkill(SkillName.Chivalry, 100.0, 120.0);
            SetSkill(SkillName.Focus, 100.0, 120.0);
            SetSkill(SkillName.Tactics, 100.0, 120.0);
            SetSkill(SkillName.Wrestling, 100.0, 120.0);
            SetSkill(SkillName.Anatomy, 100.0, 120.0);

            SetDamageType(ResistanceType.Physical, 70);
            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            Item bow;

            switch (Utility.Random(4))
            {
            default:
            case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;

            case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;

            case 2: bow = new Bow(); PackItem(new Arrow(25)); break;

            case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            AddItem(bow);

            AddItem(new TricorneHat());
            AddItem(new FancyShirt());
            AddItem(new Boots(Utility.RandomNeutralHue()));
            AddItem(new GoldEarrings());

            Fame  = 8000;
            Karma = 8000;
        }
Exemple #29
0
        public Raider()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
        {
            Title = "the raider";
            Hue   = Utility.RandomSkinHue();
            Utility.AssignRandomHair(this);

            SetStr(150, 200);
            SetDex(125, 150);
            SetInt(95, 110);

            SetHits(400, 650);
            SetDamage(21, 28);

            if (Female = Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");
                EquipItem(new Skirt(Utility.RandomNeutralHue()));
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");
                EquipItem(new ShortPants(Utility.RandomNeutralHue()));
            }

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            SetSkill(SkillName.MagicResist, 50.0, 75.5);
            SetSkill(SkillName.Archery, 90.0, 105.5);
            SetSkill(SkillName.Tactics, 90.0, 105.5);
            SetSkill(SkillName.Anatomy, 90.0, 105.5);

            Fame  = 7500;
            Karma = -7500;

            SetWearable(new TricorneHat());
            SetWearable(new LeatherArms());
            SetWearable(new FancyShirt());
            SetWearable(new Cutlass());
            SetWearable(new Boots(Utility.RandomNeutralHue()));
            SetWearable(new GoldEarrings());

            Item bow;

            switch (Utility.Random(4))
            {
            default:
            case 0: bow = new CompositeBow(); PackItem(new Arrow(25)); break;

            case 1: bow = new Crossbow(); PackItem(new Bolt(25)); break;

            case 2: bow = new Bow(); PackItem(new Arrow(25)); break;

            case 3: bow = new HeavyCrossbow(); PackItem(new Bolt(25)); break;
            }

            SetWearable(bow);

            ControlSlots = 0;
        }
        public ArcherTownGuard() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.175, 0.2)
        {
            Title     = "the guard";
            Body      = 400;
            Hue       = Utility.RandomSkinHue();
            SpeechHue = 1153;
            this.Body = 0x190;
            this.Name = NameList.RandomName("male");
            SetStr(150);
            SetDex(100);
            SetInt(25);

            SetSkill(SkillName.MagicResist, 200.0);
            SetSkill(SkillName.Archery, 100.0);
            SetSkill(SkillName.Tactics, 100.0);
            SetSkill(SkillName.Healing, 100.0);
            SetSkill(SkillName.Anatomy, 100.0);
            SetSkill(SkillName.DetectHidden, 100.0);

            Fame  = 2500;
            Karma = 5000;

            VirtualArmor = 30;

            Item hair = new Item(Utility.RandomList(0x203B, 0x2049, 0x2048, 0x204A));

            hair.Hue     = Utility.RandomHairHue();
            hair.Layer   = Layer.Hair;
            hair.Movable = false;
            AddItem(hair);
            PackGold(0);

            switch (Utility.Random(50))
            {
            case 0:
            {
                Item beard = new Item(Utility.RandomList(0x2040, 0x204B, 0x203F, 0x2041));
                beard.Hue     = hair.Hue;
                beard.Layer   = Layer.FacialHair;
                beard.Movable = false;
                AddItem(beard);
                break;
            }
            }

            Item chainchest = new ChainChest();

            EquipItem(chainchest);
            Item chainlegs = new ChainLegs();

            EquipItem(chainlegs);
            Item plategorget = new PlateGorget();

            EquipItem(plategorget);
            Item boots = new Boots();

            EquipItem(boots);
            Crossbow crossbow = new Crossbow();

            crossbow.Movable   = false;
            crossbow.MinDamage = 35;
            crossbow.MaxDamage = 40;
            EquipItem(crossbow);
            PackItem(new Crossbow());
            PackItem(new Bolt(10));
            PackItem(new Bandage(100));
        }
Exemple #31
0
        public override void GenerateLoot()
        {
            AddLoot(LootPack.FilthyRich, 5);
            AddLoot(LootPack.HighScrolls, 3);
            AddLoot(LootPack.MedScrolls, 4);
            AddLoot(LootPack.LowScrolls, 6);
            AddLoot(LootPack.Gems, 5);

            if (Utility.RandomDouble() < 0.20)
            {
                BaseWeapon weapon = Loot.RandomWeapon(true);
                switch (Utility.Random(33))
                {
                case 0: weapon = new BattleAxe(); break;

                case 1: weapon = new ExecutionersAxe(); break;

                case 2: weapon = new LargeBattleAxe(); break;

                case 3: weapon = new WarAxe(); break;

                case 4: weapon = new Bow(); break;

                case 5: weapon = new Crossbow(); break;

                case 6: weapon = new HeavyCrossbow(); break;

                case 7: weapon = new WarHammer(); break;

                case 8: weapon = new WarMace(); break;

                case 9: weapon = new Bardiche(); break;

                case 10: weapon = new Halberd(); break;

                case 11: weapon = new Spear(); break;

                case 12: weapon = new QuarterStaff(); break;

                case 13: weapon = new Katana(); break;

                case 14: weapon = new Longsword(); break;

                case 15: weapon = new VikingSword(); break;

                case 16: weapon = new CompositeBow(); break;

                case 17: weapon = new CrescentBlade(); break;

                case 18: weapon = new DoubleBladedStaff(); break;

                case 19: weapon = new Lance(); break;

                case 20: weapon = new PaladinSword(); break;

                case 21: weapon = new Scythe(); break;

                case 22: weapon = new Daisho(); break;

                case 23: weapon = new Lajatang(); break;

                case 24: weapon = new NoDachi(); break;

                case 25: weapon = new Tetsubo(); break;

                case 26: weapon = new Yumi(); break;

                case 27: weapon = new ElvenCompositeLongbow(); break;

                case 28: weapon = new OrnateAxe(); break;

                case 29: weapon = new RadiantScimitar(); break;

                case 30: weapon = new WarCleaver(); break;

                case 31: weapon = new WildStaff(); break;

                default: weapon = new DiamondMace(); break;
                }

                BaseRunicTool.ApplyAttributesTo(weapon, 5, 35, 50);
                weapon.Hue = 1461;

                PackItem(weapon);
            }

            if (Utility.RandomDouble() < 0.20)
            {
                BaseArmor armor = Loot.RandomArmor(true);
                switch (Utility.Random(5))
                {
                case 0: armor = new CrusaderGauntlets(); break;

                case 1: armor = new CrusaderGorget(); break;

                case 2: armor = new CrusaderLeggings(); break;

                case 3: armor = new CrusaderSleeves(); break;

                default: armor = new CrusaderBreastplate(); break;
                }

                BaseRunicTool.ApplyAttributesTo(armor, 5, 35, 50);
                armor.Hue = 1461;

                PackItem(armor);
            }

            if (Utility.RandomDouble() < 0.20)
            {
                BaseClothing clothing = Loot.RandomClothing(true);
                BaseRunicTool.ApplyAttributesTo(clothing, 5, 35, 50);
                clothing.Hue = 1461;

                PackItem(clothing);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseShield shield = new MetalKiteShield();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(shield, 5, 35, 50);
                }
                shield.Hue = 1461;

                PackItem(shield);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel bracelet = new GoldBracelet();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(bracelet, 5, 35, 50);
                }
                bracelet.Hue = 1461;

                PackItem(bracelet);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel earrings = new GoldEarrings();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(earrings, 5, 35, 50);
                }
                earrings.Hue = 1461;

                PackItem(earrings);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel necklace = new GoldNecklace();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(necklace, 5, 35, 50);
                }
                necklace.Hue = 1461;

                PackItem(necklace);
            }

            if (Utility.RandomDouble() < 0.10)
            {
                BaseJewel ring = new GoldRing();
                if (Core.AOS)
                {
                    BaseRunicTool.ApplyAttributesTo(ring, 5, 35, 50);
                }
                ring.Hue = 1461;

                PackItem(ring);
            }
        }
Exemple #32
0
        public PirateCrew() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, .2, .4)
        {
            Name = "Orcish Crew";

            Body = 0.33 > Utility.RandomDouble() ? 0x8C : Utility.RandomList(0xB5, 0xB6);

            SetHits(2000);

            if (Body == 0x8C) // Mage
            {
                SetStr(140, 160);
                SetDex(130, 150);
                SetInt(170, 190);
                SetDamage(4, 14);

                SetDamageType(ResistanceType.Physical, 100);

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

                ChangeAIType(AIType.AI_Mage);

                SetSkill(SkillName.Wrestling, 45.0, 55.0);
                SetSkill(SkillName.Tactics, 50.0, 60.0);
                SetSkill(SkillName.MagicResist, 65.0, 75.0);
                SetSkill(SkillName.Magery, 60.0, 70.0);
                SetSkill(SkillName.EvalInt, 60.0, 75.0);
                SetSkill(SkillName.Meditation, 70.0, 90.0);
                SetSkill(SkillName.Focus, 80.0, 100.0);
            }
            else if (Body == 0xB6) // Bomber
            {
                SetStr(150, 200);
                SetDex(90, 110);
                SetInt(70, 100);
                SetDamage(1, 8);

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

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

                SetSkill(SkillName.Wrestling, 60.0, 90.0);
                SetSkill(SkillName.Tactics, 70.0, 85.0);
                SetSkill(SkillName.MagicResist, 70.0, 85.0);
            }
            else // Archer
            {
                SetStr(100, 130);
                SetDex(100, 130);
                SetInt(30, 70);
                SetDamage(5, 7);

                SetDamageType(ResistanceType.Physical, 100);

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

                ChangeAIType(AIType.AI_Archer);

                SetSkill(SkillName.Tactics, 55.0, 70.0);
                SetSkill(SkillName.MagicResist, 50.0, 70.0);
                SetSkill(SkillName.Anatomy, 60.0, 85.0);
                SetSkill(SkillName.Healing, 60.0, 80.0);
                SetSkill(SkillName.Archery, 100.0, 120.0);

                Item bow;

                switch (Utility.Random(4))
                {
                default:
                case 0: bow = new CompositeBow(); break;

                case 1: bow = new Crossbow(); break;

                case 2: bow = new Bow(); break;

                case 3: bow = new HeavyCrossbow(); break;
                }

                AddItem(bow);
            }

            SetSkill(SkillName.DetectHidden, 40.0, 45.0);

            Fame  = 8000;
            Karma = -8000;
        }