Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public void Equip(Equipable item)
        {
            EBodyPart bodyPart = item.BodyPart;

            if (slots[bodyPart] != null)
            {
                UnEquip(bodyPart);
            }

            slots[bodyPart] = item;
            owner.Inventory.Remove(item);
        }
Exemplo n.º 3
0
        public void UnEquip(EBodyPart bodyPart)
        {
            if (slots[bodyPart] == null)
            {
                return;
            }

            Equipable equipable = slots[bodyPart];

            slots[bodyPart] = null;

            equipable.UnUse(owner);
            owner.CollectItem(equipable);
        }