public Item Generate(EItemID itemID) { Item generatedItem = null; List <IItemEffect> effects = new List <IItemEffect>(); switch (itemID) { case (EItemID.RAW_FISH): effects.Add(new Heal(20)); generatedItem = new Consumable(itemID, "Carne de pescado", effects); break; case (EItemID.RAW_SHARK): effects.Add(new Heal(80)); generatedItem = new Consumable(itemID, "Carne de tiburon", effects); break; case (EItemID.FISH_SOUP): effects.Add(new Heal(100)); generatedItem = new Consumable(itemID, "Sopa de pescados", effects); break; case (EItemID.CORAL_PIECE): generatedItem = new Item(itemID, "Pedazo de coral", effects); break; case (EItemID.CORAL_ARMOR): effects.Add(new MaxHealthIncrease(50)); generatedItem = new Equipable(itemID, "Armadura de coral", effects, EBodyPart.BODY); break; case (EItemID.FISH_SCALE): generatedItem = new Item(itemID, "Escama de pescado", effects); break; case (EItemID.SHARK_TOOTH): generatedItem = new Item(itemID, "Diente de tiburon", effects); break; case (EItemID.METAL_SCRAP): generatedItem = new Item(itemID, "Reciduo metalico", effects); break; case (EItemID.SHARK_TOOTH_KNIFE): effects.Add(new IncreaseAttackDamage(40)); generatedItem = new Equipable(itemID, "Cuchillo de diente de tiburon", effects, EBodyPart.WEAPON); break; case (EItemID.OXYGEN_TANK): effects.Add(new IncreaseOxyenCapacity(100)); generatedItem = new Equipable(itemID, "Tanque de oxigeno", effects, EBodyPart.BACK); break; } // Si no matchea con ninguno (deberia ser imposible) explota al tratar de usarlo xq es null return(generatedItem); }
public void Equip(Equipable item) { EBodyPart bodyPart = item.BodyPart; if (slots[bodyPart] != null) { UnEquip(bodyPart); } slots[bodyPart] = item; owner.Inventory.Remove(item); }
public void UnEquip(EBodyPart bodyPart) { if (slots[bodyPart] == null) { return; } Equipable equipable = slots[bodyPart]; slots[bodyPart] = null; equipable.UnUse(owner); owner.CollectItem(equipable); }