/// <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); }
/// <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); } }