コード例 #1
0
        /// <summary>
        /// Loads all the weapons and items.
        /// </summary>
        public static void LoadAllWeaponsAndItems()
        {
            testMelee  = new MeleeWeapon(110, 40, 20, 2, SpriteSheetManager.swordSwing, SpriteSheetManager.arrowItem, 0.9f, 2, "testweapon", 1);
            sweepMelee = new MeleeWeapon(60, 180, 75, 1, SpriteSheetManager.sweep, SpriteSheetManager.sweepItem, 0.69f, 2, "battleaxe", 1);
            knifeMelee = new MeleeWeapon(30, 25, 5, 10, SpriteSheetManager.knife, SpriteSheetManager.knifeItem, 1.5f, 7, "knife", 1);
            AllWeaponList.Add(testMelee);
            AllWeaponList.Add(sweepMelee);
            AllWeaponList.Add(knifeMelee);

            spear = new MeleeWeapon(200, 16, 30, 1.5f, SpriteSheetManager.spear, SpriteSheetManager.spearItem, 0.75f, 8, "spear", 1);
            AllWeaponList.Add(spear);

            smashRings = new MeleeWeapon(320, 320, 150, 0.8f, SpriteSheetManager.smash, SpriteSheetManager.smashItem, 0.01f, 9, "Smash Rings", 1);
            AllWeaponList.Add(smashRings);

            boxingGlove = new MeleeWeapon(100, 40, 14, 5, SpriteSheetManager.punch, SpriteSheetManager.punchItem, 0.6f, 8, "Speedy Punch Glove", 1);
            AllWeaponList.Add(boxingGlove);

            arrow = new Projectile(32, 8, SpriteSheetManager.arrowBow, 1, 10);
            bow   = new RangeWeapon(40, 80, 20, 1000, 2, SpriteSheetManager.bow, SpriteSheetManager.bowItem, 0.3f, 3, "Bow", arrow, 1);
            AllWeaponList.Add(bow);

            shuriken = new Projectile(25, 25, SpriteSheetManager.shuriken, 1, 20);
            throwing = new RangeWeapon(60, 40, 15, 500, 5, SpriteSheetManager.throwing, SpriteSheetManager.throwItem, 0.90f, 10, "Shurikens", shuriken, 1);
            AllWeaponList.Add(throwing);

            fireBall = new Projectile(42, 34, SpriteSheetManager.fireBall, 0.2, 12);
            fireRod  = new RangeWeapon(146, 42, 80, 600, 1, SpriteSheetManager.fireRod, SpriteSheetManager.fireRodItem, 0.85f, 2, "Rod of Bursting Flames and Generic Names", fireBall, 1);
            AllWeaponList.Add(fireRod);

            iceBall = new Projectile(34, 34, SpriteSheetManager.iceBall, 0.3, 8);
            iceRod  = new RangeWeapon(146, 41, 55, 400, 2, SpriteSheetManager.iceRod, SpriteSheetManager.iceRodItem, 0.7f, 1, "Rod of Chilling Ice and Everything Nice", iceBall, 1);
            AllWeaponList.Add(iceRod);
        }
コード例 #2
0
        /// <summary>
        /// Change the weapon of the player and drops the old weapon on the ground
        /// </summary>
        /// <param name="newWeapon">The new weapon assigned to the player</param>
        public void ChangeWeapon(Weapon newWeapon)
        {
            if (equippedMelee != null)
            {
                WeaponItem droppedWeapon = new WeaponItem(equippedMelee, 0, false, equippedMelee.itemSpriteSheet, middlepos, Item.ItemType.weaponType, equippedMelee.itemName);
                Level.itemsList.Add(droppedWeapon);
            }
            else if (equippedRange != null)
            {
                WeaponItem droppedWeapon = new WeaponItem(equippedRange, 0, false, equippedRange.itemSpriteSheet, middlepos, Item.ItemType.weaponType, equippedRange.itemName);
                Level.itemsList.Add(droppedWeapon);
            }

            if (newWeapon is MeleeWeapon)
            {
                equippedMelee                   = (MeleeWeapon)newWeapon;
                attackTime                      = 1 / (equippedMelee.baseAttackSpeed * equippedMelee.attackSpeedMultiplyier * attackSpeedMultiplier);
                equippedRange                   = null;
                weaponSpeedMultiplier           = equippedMelee.speedMultiplier;
                equippedMelee.timeBetweenFrames = attackTime / ((equippedMelee.spriteSheet.sheetSize.X + 1) + equippedMelee.spriteSheet.sheetSize.Y);
            }
            else if (newWeapon is RangeWeapon)
            {
                equippedRange                   = (RangeWeapon)newWeapon;
                attackTime                      = 1 / (equippedRange.baseAttackSpeed * equippedRange.attackSpeedMultiplyier * attackSpeedMultiplier);
                equippedMelee                   = null;
                weaponSpeedMultiplier           = equippedRange.speedMultiplier;
                equippedRange.timeBetweenFrames = attackTime / ((equippedRange.spriteSheet.sheetSize.X + 1) + equippedRange.spriteSheet.sheetSize.Y);
            }
        }