public LootSack(Enemy enemy) : base("Sprites/Containers/unseen_item", "Sprites/Containers/unseen_item", "Sounds/CLICK14A", enemy.FloorNumber, enemy.Inventory) { scale = 0.5f; for (int i = 0; i < enemy.EquipmentSlots.Children.Count - 1; i++) { RestrictedItemSlot equipSlot = enemy.EquipmentSlots.Children[i] as RestrictedItemSlot; ItemSlot slot = enemy.Inventory[i, 0] as ItemSlot; slot.ChangeItem(equipSlot.SlotItem); } }
private void SetupType() { if (playerType == PlayerType.Random) { //select random armorType Array pTypeValues = Enum.GetValues(typeof(PlayerType)); playerType = (PlayerType)pTypeValues.GetValue(GameEnvironment.Random.Next(pTypeValues.Length - 1)); } RestrictedItemSlot weaponslot = EquipmentSlots.Find("weaponSlot") as RestrictedItemSlot; RestrictedItemSlot bodyslot = EquipmentSlots.Find("bodySlot") as RestrictedItemSlot; int EquipmentStartingStrenght = 3; ItemSlot slot_0_0 = Inventory[0, 0] as ItemSlot; slot_0_0.ChangeItem(new Potion("Sprites/Potions/ruby", PotionType.Health, PotionPower.minor, 5));//some starting healt potions ItemSlot slot_2_2 = Inventory[2, 2] as ItemSlot; slot_2_2.ChangeItem(new Heal()); ItemSlot slot_3_2 = Inventory[3, 2] as ItemSlot; slot_3_2.ChangeItem(new MagicBolt()); switch (playerType) { case PlayerType.Warrior: weaponslot.ChangeItem(new WeaponEquipment(EquipmentStartingStrenght, WeaponType.melee)); bodyslot.ChangeItem(new BodyEquipment(EquipmentStartingStrenght, 2, ArmorType.heavy)); SetStats(1, 4, 4, 1, 1, 1, 1); break; case PlayerType.Archer: weaponslot.ChangeItem(new WeaponEquipment(EquipmentStartingStrenght, WeaponType.bow)); bodyslot.ChangeItem(new BodyEquipment(EquipmentStartingStrenght, 2, ArmorType.normal)); SetStats(1, 1, 1, 4, 1, 1, 4); break; case PlayerType.Mage: weaponslot.ChangeItem(new WeaponEquipment(EquipmentStartingStrenght, WeaponType.staff)); bodyslot.ChangeItem(new BodyEquipment(EquipmentStartingStrenght, 2, ArmorType.robes)); SetStats(1, 1, 1, 1, 4, 4, 1); ItemSlot slot_1_0 = Inventory[1, 0] as ItemSlot; slot_1_0.ChangeItem(new Potion("Sprites/Potions/brilliant_blue", PotionType.Mana, PotionPower.minor, 5)); //some starting mana potions break; default: throw new Exception("invalid enemy type"); } }
/// <summary> /// Set up the enemy /// </summary> /// <param name="etype">The Enemy type</param> /// <param name="floorNumber">The floor the enemy is on</param> private EnemyType SetupType(EnemyType etype, int floorNumber) { if (etype == EnemyType.random) { //select random armorType Array eTypeValues = Enum.GetValues(typeof(EnemyType)); etype = (EnemyType)eTypeValues.GetValue(GameEnvironment.Random.Next(eTypeValues.Length - 1)); } id += " : " + etype.ToString(); int eLvl = GameEnvironment.Random.Next(1, floorNumber); int weaponChance = 15 * floorNumber; // higher chance the deeper you go int armorChance = 15 * floorNumber; // switch (etype) { case EnemyType.warrior: if (weaponChance < GameEnvironment.Random.Next(100)) { RestrictedItemSlot weaponslot = EquipmentSlots.Find("weaponSlot") as RestrictedItemSlot; weaponslot.ChangeItem(new WeaponEquipment(floorNumber, WeaponType.melee)); } if (armorChance < GameEnvironment.Random.Next(100)) { RestrictedItemSlot bodyslot = EquipmentSlots.Find("bodySlot") as RestrictedItemSlot; // bodyslot.ChangeItem(new BodyEquipment(floorNumber, 2, ArmorType.normal)); } SetStats(eLvl, 3 + (eLvl), 3 + (eLvl), 2 + (eLvl / 2), 1 + (eLvl / 2), 1 + (eLvl / 2), 2 + (eLvl / 2), 20 + eLvl * 3, 2, 1); break; case EnemyType.archer: if (weaponChance < GameEnvironment.Random.Next(100)) { RestrictedItemSlot weaponslot = EquipmentSlots.Find("weaponSlot") as RestrictedItemSlot; weaponslot.ChangeItem(new WeaponEquipment(floorNumber, WeaponType.bow)); } if (armorChance < GameEnvironment.Random.Next(100)) { RestrictedItemSlot bodyslot = EquipmentSlots.Find("bodySlot") as RestrictedItemSlot; //bodyslot.ChangeItem(new BodyEquipment(floorNumber, 2, ArmorType.normal)); } SetStats(eLvl, 2 + (eLvl / 2), 1 + (eLvl / 2), 3 + (eLvl), 1 + (eLvl / 2), 1 + (eLvl / 2), 3 + (eLvl), 20 + eLvl * 3, 2, 1); break; case EnemyType.mage: if (weaponChance < GameEnvironment.Random.Next(100)) { RestrictedItemSlot weaponslot = EquipmentSlots.Find("weaponSlot") as RestrictedItemSlot; weaponslot.ChangeItem(new WeaponEquipment(floorNumber, WeaponType.staff)); } if (armorChance < GameEnvironment.Random.Next(100)) { RestrictedItemSlot bodyslot = EquipmentSlots.Find("bodySlot") as RestrictedItemSlot; //bodyslot.ChangeItem(new BodyEquipment(floorNumber, 2, ArmorType.robes)); } SetStats(eLvl, 1 + (eLvl / 2), 1 + (eLvl / 2), 1 + (eLvl / 2), 3 + (eLvl), 3 + (eLvl), 1 + (eLvl / 2), 20 + eLvl * 3, 2, 2); break; default: throw new Exception("invalid enemy type"); } return(etype); }