module VFX
{
    imports
    {
        Base,
    }

/* <<<<<  Evolved Recipes  >>>>> */

    craftRecipe PrepareLasagna
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1  [Base.RoastingPan] mode:destroy flags[InheritCondition],
            item 10 [VFX.LasagnaSheets] flags[IsUncookedFoodItem],
            item 1  [Base.Marinara;VFX.SpicyMarinara;VFX.MeatSauce;VFX.BasilPestoSauce;VFX.AlfredoSauce;VFX.BechamelSauce;VFX.HomemadeMarinara_Open;VFX.HomemadeSpicyMarinara_Open;VFX.HomemadeMeatSauce_Open;VFX.HomemadeBasilPestoSauce_Open;VFX.HomemadeAlfredoSauce_Open;VFX.HomemadeBechamelSauce_Open] flags[ItemCount],
        }

        outputs
        {
            item 1 VFX.LasagnaPreparation,
        }
    }

    craftRecipe PrepareMeatloaf
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [Base.RoastingPan] mode:destroy flags[InheritCondition],
            item 1 [Base.MincedMeat;VFX.GroundChicken;VFX.GroundPork;VFX.GroundTurkey;VFX.GroundLamb] flags[ItemCount;IsUncookedFoodItem],
        }

        outputs
        {
            item 1 Base.VFXMeatloafPreparation,
        }
    }

    craftRecipe PrepareBakedPotato
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [Base.RoastingPan] mode:destroy flags[InheritCondition],
            item 2 [Base.Potato] flags[ItemCount;IsUncookedFoodItem],
        }

        outputs
        {
            item 1 Base.VFXBakedPotatoPreparation,
        }
    }

    craftRecipe PrepareScallopedPotatoBake
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [Base.RoastingPan] mode:destroy flags[InheritCondition],
            item 5 [VFX.SlicedPotato] flags[ItemCount;IsUncookedFoodItem],
            item 1 [VFX.HeavyCream] flags[ItemCount],
        }

        outputs
        {
            item 1 Base.VFXScallopedPotatoBakePreparation,
        }
    }

    craftRecipe PrepareQuiche
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 tags[MixingUtensil] mode:keep flags[MayDegradeVeryLight],
            item 1 [Base.Bowl;Base.ClayBowl] mode:keep flags[ItemCount],
            item 1 [Base.BakingPan] mode:destroy flags[InheritCondition],
            item 6 [Base.Egg;Base.TurkeyEgg;Base.WildEggs] flags[ItemCount;IsUncookedFoodItem],
        }

        outputs
        {
            item 1 Base.VFXQuichePreparation,
        }
    }

    craftRecipe PrepareNachos
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [Base.RoastingPan] mode:destroy flags[InheritCondition],
            item 1 [Base.TortillaChips] flags[ItemCount],
        }

        outputs
        {
            item 1 Base.VFXNachosPreparation,
        }
    }

    craftRecipe PrepareEnchilada
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 tags[MixingUtensil] mode:keep flags[MayDegradeVeryLight],
            item 1 [Base.RoastingPan] mode:destroy flags[InheritCondition],
            item 1 [Base.Tortilla] flags[ItemCount],
        }

        outputs
        {
            item 1 Base.VFXEnchiladaPreparation,
        }
    }

    craftRecipe PrepareCheesecake
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1  tags[MixingUtensil] mode:keep flags[MayDegradeVeryLight],
            item 1  [Base.RollingPin] mode:keep flags[MayDegradeVeryLight],
            item 1  [Base.Bowl] mode:keep flags[InheritCondition],
            item 1  [Base.BakingPan] mode:destroy flags[InheritCondition],
            item 1  [VFX.CreamCheese] flags[ItemCount],
            item 15 [Base.Sugar],
            item 2  [Base.Egg;Base.TurkeyEgg;Base.WildEggs] flags[ItemCount;IsUncookedFoodItem],
            item 1  [Base.GrahamCrackers] flags[ItemCount],
        }

        outputs
        {
            item 1 Base.VFXCheesecakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeVanilla
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [Base.Icecream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeChocolate
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.ChocolateIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeChocolateChip
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.ChocolateChipIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeStrawberry
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.StrawberryIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeNeapolitan
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.NeapolitanIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeButterPecan
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.ButterPecanIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeMintChocolateChip
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.MintChocolateChipIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeCookiesAndCream
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.CookiesAndCreamIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakeRockyRoad
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.RockyRoadIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareMilkshakePistachio
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,

        inputs
        {
            item 1 [VFX.MilkshakeGlass] mode:destroy,
            item 5 [VFX.PistachioIceCream] flags[AllowFrozenItem],
            item 1 [*],
                -fluid 0.2 [CowMilk],
        }

        outputs
        {
            item 1 Base.VFXMilkshakePreparation,
        }
    }

    craftRecipe PrepareSushi
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,
        Tooltip = Tooltip_VFX_Recipe_RiceCooked,

        inputs
        {
            item 1 [Base.Seaweed] flags[ItemCount],
            item 5 [VFX.WaterSaucepanBrownRice;VFX.WaterSaucepanCopperBrownRice;VFX.WaterPotBrownRice;VFX.WaterPotForgedBrownRice;VFX.BrownRiceBowl;VFX.WaterSaucepanJasmineRice;VFX.WaterSaucepanCopperJasmineRice;VFX.WaterPotJasmineRice;VFX.WaterPotForgedJasmineRice;VFX.JasmineRiceBowl;VFX.WaterSaucepanBasmatiRice;VFX.WaterSaucepanCopperBasmatiRice;VFX.WaterPotBasmatiRice;VFX.WaterPotForgedBasmatiRice;VFX.BasmatiRiceBowl;VFX.WaterSaucepanArborioRice;VFX.WaterSaucepanCopperArborioRice;VFX.WaterPotArborioRice;VFX.WaterPotForgedArborioRice;VFX.ArborioRiceBowl;Base.WaterPotRice;Base.WaterPotForgedRice;Base.WaterSaucepanRice;Base.WaterSaucepanRiceCopper;Base.RiceBowl] mappers[RicePotType] flags[ItemCount;IsCookedFoodItem],
        }

        outputs
        {
            item 1 Base.VFXSushiPreparation,
            item 1 mapper:RicePotType,
        }

        itemMapper RicePotType
        {
            Base.Saucepan = VFX.WaterSaucepanBrownRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperBrownRice,
            Base.Pot = VFX.WaterPotBrownRice,
            Base.PotForged = VFX.WaterPotForgedBrownRice,
            Base.Bowl = VFX.BrownRiceBowl,

            Base.Saucepan = VFX.WaterSaucepanJasmineRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperJasmineRice,
            Base.Pot = VFX.WaterPotJasmineRice,
            Base.PotForged = VFX.WaterPotForgedJasmineRice,
            Base.Bowl = VFX.JasmineRiceBowl,

            Base.Saucepan = VFX.WaterSaucepanBasmatiRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperBasmatiRice,
            Base.Pot = VFX.WaterPotBasmatiRice,
            Base.PotForged = VFX.WaterPotForgedBasmatiRice,
            Base.Bowl = VFX.BasmatiRiceBowl,

            Base.Saucepan = VFX.WaterSaucepanArborioRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperArborioRice,
            Base.Pot = VFX.WaterPotArborioRice,
            Base.PotForged = VFX.WaterPotForgedArborioRice,
            Base.Bowl = VFX.ArborioRiceBowl,

            Base.Pot = Base.WaterPotRice,
            Base.PotForged = Base.WaterPotForgedRice,
            Base.Saucepan = Base.WaterSaucepanRice,
            Base.SaucepanCopper = Base.WaterSaucepanRiceCopper,
            Base.Bowl = Base.RiceBowl,
        }
    }

    craftRecipe PrepareFriedRice
    {
        timedAction = VFX.BowlMixing,
        Time = 80,
        Tags = AnySurfaceCraft;Cooking,
        category = Cooking,
        Tooltip = Tooltip_VFX_Recipe_RiceCooked,

        inputs
        {
            item 1 [Base.Pan;Base.PanForged] mappers[PanType] mode:destroy flags[InheritCondition],
            item 1 [VFX.WaterSaucepanBrownRice;VFX.WaterSaucepanCopperBrownRice;VFX.WaterPotBrownRice;VFX.WaterPotForgedBrownRice;VFX.BrownRiceBowl;VFX.WaterSaucepanJasmineRice;VFX.WaterSaucepanCopperJasmineRice;VFX.WaterPotJasmineRice;VFX.WaterPotForgedJasmineRice;VFX.JasmineRiceBowl;VFX.WaterSaucepanBasmatiRice;VFX.WaterSaucepanCopperBasmatiRice;VFX.WaterPotBasmatiRice;VFX.WaterPotForgedBasmatiRice;VFX.BasmatiRiceBowl;VFX.WaterSaucepanArborioRice;VFX.WaterSaucepanCopperArborioRice;VFX.WaterPotArborioRice;VFX.WaterPotForgedArborioRice;VFX.ArborioRiceBowl;Base.WaterPotRice;Base.WaterPotForgedRice;Base.WaterSaucepanRice;Base.WaterSaucepanRiceCopper;Base.RiceBowl] mappers[RicePotType] flags[ItemCount;IsCookedFoodItem],
            item 1 tags[Egg] flags[IsUncookedFoodItem;InheritFoodAge;ItemCount],
        }

        outputs
        {
            item 1 mapper:PanType,
            item 1 mapper:RicePotType,
        }

        itemMapper PanType
        {
            Base.VFXFriedRicePreparation = Base.Pan,
            Base.VFXFriedRicePreparationForged = Base.PanForged,
        }

        itemMapper RicePotType
        {
            Base.Saucepan = VFX.WaterSaucepanBrownRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperBrownRice,
            Base.Pot = VFX.WaterPotBrownRice,
            Base.PotForged = VFX.WaterPotForgedBrownRice,
            Base.Bowl = VFX.BrownRiceBowl,

            Base.Saucepan = VFX.WaterSaucepanJasmineRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperJasmineRice,
            Base.Pot = VFX.WaterPotJasmineRice,
            Base.PotForged = VFX.WaterPotForgedJasmineRice,
            Base.Bowl = VFX.JasmineRiceBowl,

            Base.Saucepan = VFX.WaterSaucepanBasmatiRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperBasmatiRice,
            Base.Pot = VFX.WaterPotBasmatiRice,
            Base.PotForged = VFX.WaterPotForgedBasmatiRice,
            Base.Bowl = VFX.BasmatiRiceBowl,

            Base.Saucepan = VFX.WaterSaucepanArborioRice,
            Base.SaucepanCopper = VFX.WaterSaucepanCopperArborioRice,
            Base.Pot = VFX.WaterPotArborioRice,
            Base.PotForged = VFX.WaterPotForgedArborioRice,
            Base.Bowl = VFX.ArborioRiceBowl,

            Base.Pot = Base.WaterPotRice,
            Base.PotForged = Base.WaterPotForgedRice,
            Base.Saucepan = Base.WaterSaucepanRice,
            Base.SaucepanCopper = Base.WaterSaucepanRiceCopper,
            Base.Bowl = Base.RiceBowl,
        }
    }

    craftRecipe GetBakedPotato
    {
        timedAction = VFX.TakeBakedPotato,
        time = 20,
        category = Cooking,
        Tags = InHandCraft;Cooking,
        ToolTip = Tooltip_Recipe_MustCookedGet,

        inputs
        {
            item 1 [Base.VFXBakedPotatoPreparation;Base.VFXBakedPotatoEvolved] flags[IsCookedFoodItem;InheritFoodAge;ItemCount],
        }

        outputs
        {
            item 2 Base.VFXBakedPotato,
            item 1 Base.RoastingPan,
        }
    }

    craftRecipe SliceCheesecake
    {
        timedAction = SliceFood_Surface,
        time = 20,
        category = Cooking,
        Tags = InHandCraft;Cooking,
        ToolTip = Tooltip_Recipe_MustCookedGet,

        inputs
        {
            item 1 tags[DullKnife;SharpKnife;MeatCleaver] mode:keep flags[MayDegradeLight],
            item 1 [Base.VFXCheesecakePreparation;Base.VFXCheesecakeEvolved] flags[IsCookedFoodItem;InheritFoodAge;ItemCount],
        }

        outputs
        {
            item 5 Base.VFXCheesecakeSlice,
            item 1 Base.BakingPan,
        }
    }

}