---@meta

local worldSprites = {
    wildPlants = {
        {
            "d_plants_1_11",
        },
        {
            "d_plants_1_12",
        },
        {
            "d_plants_1_13",
        },
        {
            "d_plants_1_14",
        },
        {
            "d_plants_1_15",
        },
    },
    smallTrees = {
        {
            "media/textures/Foraging/worldSprites/smallTree_worldSprite.png",
        },
        {
            "media/textures/Foraging/worldSprites/smallTree2_worldSprite.png",
        },
    },
    berryBushes = {
        {
            "f_bushes_1_4",
            "f_bushes_1_68",
            "f_bushes_1_84",
        },
        {
            "f_bushes_1_4",
            "f_bushes_1_68",
            "f_bushes_1_88",
        },
    },
    bushes = {
        {
            "f_bushes_1_64",
        },
        {
            "f_bushes_1_65",
        },
        {
            "f_bushes_1_66",
        },
    },
    shrubs = {
        {
            "d_plants_1_19",
        },
        {
            "d_plants_1_20",
        },
        {
            "d_plants_1_21",
        },
        {
            "d_plants_1_22",
        },
        {
            "d_plants_1_23",
        },
        {
            "f_bushes_1_68",
        },
        {
            "f_bushes_1_77",
        },
        {
            "f_bushes_1_78",
        },
    },
    vines = {
        {
            "d_plants_1_38",
        },
        {
            "d_plants_1_49",
        },
        {
            "d_plants_1_50",
        },
    },
}
local spriteAffinities = {
    genericPlants = {
        "d_generic_1_17",
        "d_generic_1_18",
        "d_generic_1_19",
        "d_generic_1_47",
        "d_generic_1_48",
        "d_generic_1_49",
        "d_generic_1_50",
        "d_generic_1_51",
        "d_generic_1_52",
        "d_generic_1_53",
        "d_generic_1_54",
        "d_generic_1_55",
        "d_generic_1_80",
        "d_generic_1_81",
        "d_generic_1_82",
        "d_generic_1_83",
        "d_generic_1_84",
        "d_generic_1_85",
        "d_generic_1_86",
        "d_generic_1_87",
        "d_plants_1_0",
        "d_plants_1_1",
        "d_plants_1_2",
        "d_plants_1_3",
        "d_plants_1_4",
        "d_plants_1_5",
        "d_plants_1_6",
        "d_plants_1_7",
        "d_plants_1_8",
        "d_plants_1_9",
        "d_plants_1_10",
        "d_plants_1_11",
        "d_plants_1_12",
        "d_plants_1_13",
        "d_plants_1_14",
        "d_plants_1_15",
        "d_plants_1_16",
        "d_plants_1_17",
        "d_plants_1_18",
        "d_plants_1_19",
        "d_plants_1_20",
        "d_plants_1_21",
        "d_plants_1_22",
        "d_plants_1_23",
        "d_plants_1_24",
        "d_plants_1_25",
        "d_plants_1_26",
        "d_plants_1_27",
        "d_plants_1_28",
        "d_plants_1_29",
        "d_plants_1_30",
        "d_plants_1_31",
        "d_plants_1_32",
        "d_plants_1_33",
        "d_plants_1_34",
        "d_plants_1_35",
        "d_plants_1_36",
        "d_plants_1_37",
        "d_plants_1_38",
        "d_plants_1_39",
        "d_plants_1_40",
        "d_plants_1_41",
        "d_plants_1_42",
        "d_plants_1_43",
        "d_plants_1_44",
        "d_plants_1_45",
        "d_plants_1_46",
        "d_plants_1_47",
        "d_plants_1_48",
        "d_plants_1_49",
        "d_plants_1_50",
        "d_plants_1_51",
        "d_plants_1_52",
        "d_plants_1_53",
        "d_plants_1_54",
        "d_plants_1_55",
        "d_plants_1_56",
        "d_plants_1_57",
        "d_plants_1_58",
        "d_plants_1_59",
        "d_plants_1_60",
        "d_plants_1_61",
        "d_plants_1_62",
        "d_plants_1_63",
    },
    specialPlants = {
        "d_generic_1_17",
        "d_generic_1_18",
        "d_generic_1_19",
        "d_generic_1_47",
        "d_generic_1_48",
        "d_generic_1_49",
        "d_generic_1_50",
        "d_generic_1_51",
        "d_generic_1_52",
        "d_generic_1_53",
        "d_generic_1_54",
        "d_generic_1_55",
        "d_generic_1_80",
        "d_generic_1_81",
        "d_generic_1_82",
        "d_generic_1_83",
        "d_generic_1_84",
        "d_generic_1_85",
        "d_generic_1_86",
        "d_generic_1_87",
    },
    stones = {
        "d_generic_1_13",
        "d_generic_1_22",
        "d_generic_1_23",
        "d_generic_1_24",
        "d_generic_1_25",
        "d_generic_1_40",
        "d_generic_1_41",
        "d_generic_1_42",
        "d_generic_1_43",
        "floors_overlay_street_01_0",
        "floors_overlay_street_01_1",
        "floors_overlay_street_01_2",
        "floors_overlay_street_01_3",
        "floors_overlay_street_01_4",
        "floors_overlay_street_01_5",
        "floors_overlay_street_01_6",
        "floors_overlay_street_01_7",
        "floors_overlay_street_01_8",
        "floors_overlay_street_01_9",
        "floors_overlay_street_01_10",
        "floors_overlay_street_01_11",
        "floors_overlay_street_01_12",
        "floors_overlay_street_01_13",
        "floors_overlay_street_01_14",
        "floors_overlay_street_01_15",
        "floors_overlay_street_01_16",
        "floors_overlay_street_01_17",
        "floors_overlay_street_01_18",
        "floors_overlay_street_01_19",
        "floors_overlay_street_01_20",
        "floors_overlay_street_01_21",
        "floors_overlay_street_01_22",
        "floors_overlay_street_01_23",
        "floors_overlay_street_01_24",
        "floors_overlay_street_01_25",
        "floors_overlay_street_01_26",
        "floors_overlay_street_01_27",
        "floors_overlay_street_01_28",
        "floors_overlay_street_01_29",
        "floors_overlay_street_01_30",
        "floors_overlay_street_01_31",
        "floors_overlay_street_01_32",
        "floors_overlay_street_01_33",
        "floors_overlay_street_01_34",
        "floors_overlay_street_01_35",
        "floors_overlay_street_01_36",
        "floors_overlay_street_01_37",
        "floors_overlay_street_01_38",
        "floors_overlay_street_01_39",
        "floors_overlay_street_01_40",
        "floors_overlay_street_01_41",
        "floors_overlay_street_01_42",
        "floors_overlay_street_01_43",
        "floors_overlay_street_01_44",
        "floors_overlay_street_01_45",
        "floors_overlay_street_01_46",
        "floors_overlay_street_01_47",
        "floors_overlay_street_01_48",
        "floors_overlay_street_01_49",
        "floors_overlay_street_01_50",
        "floors_overlay_street_01_51",
        "floors_overlay_street_01_52",
        "floors_overlay_street_01_53",
        "floors_overlay_street_01_54",
        "floors_overlay_street_01_55",
        "floors_overlay_street_01_56",
        "floors_overlay_street_01_57",
        "floors_overlay_street_01_58",
        "floors_overlay_street_01_59",
        "floors_overlay_street_01_60",
        "floors_overlay_street_01_61",
        "floors_overlay_street_01_62",
        "floors_overlay_street_01_63",
        "blends_streetoverlays_01_0",
        "blends_streetoverlays_01_1",
        "blends_streetoverlays_01_2",
        "blends_streetoverlays_01_3",
        "blends_streetoverlays_01_4",
        "blends_streetoverlays_01_5",
        "blends_streetoverlays_01_6",
        "blends_streetoverlays_01_7",
        "blends_streetoverlays_01_8",
        "blends_streetoverlays_01_9",
        "blends_streetoverlays_01_10",
        "blends_streetoverlays_01_11",
        "blends_streetoverlays_01_12",
        "blends_streetoverlays_01_13",
        "blends_streetoverlays_01_14",
        "blends_streetoverlays_01_15",
        "blends_streetoverlays_01_16",
        "blends_streetoverlays_01_17",
        "blends_streetoverlays_01_18",
        "blends_streetoverlays_01_19",
        "blends_streetoverlays_01_20",
        "blends_streetoverlays_01_21",
        "blends_streetoverlays_01_22",
        "blends_streetoverlays_01_23",
        "blends_streetoverlays_01_24",
        "blends_streetoverlays_01_25",
        "blends_streetoverlays_01_26",
        "blends_streetoverlays_01_27",
        "blends_streetoverlays_01_28",
        "blends_streetoverlays_01_29",
        "blends_streetoverlays_01_30",
        "blends_streetoverlays_01_31",
    },
    firewood = {
        "d_generic_1_8",
        "d_generic_1_9",
        "d_generic_1_10",
        "d_generic_1_11",
        "d_generic_1_12",
        "d_generic_1_14",
        "d_generic_1_15",
        "d_generic_1_31",
        "d_generic_1_44",
        "d_generic_1_45",
    },
    trash = {
        "d_trash_0",
        "d_trash_1",
        "d_trash_2",
        "d_trash_3",
        "d_trash_4",
        "d_trash_5",
        "d_trash_6",
        "d_trash_7",
        "d_trash_8",
        "d_trash_9",
        "d_trash_10",
        "d_trash_11",
        "d_trash_12",
        "d_trash_13",
        "d_trash_14",
        "d_trash_15",
        "d_trash_16",
        "d_trash_17",
        "d_trash_18",
        "d_trash_19",
        "d_trash_20",
        "d_trash_21",
        "d_trash_22",
        "d_trash_23",
        "d_trash_24",
        "d_trash_25",
        "trash_01_0",
        "trash_01_1",
        "trash_01_2",
        "trash_01_3",
        "trash_01_4",
        "trash_01_5",
        "trash_01_6",
        "trash_01_7",
        "trash_01_8",
        "trash_01_9",
        "trash_01_10",
        "trash_01_11",
        "trash_01_12",
        "trash_01_16",
        "trash_01_17",
        "trash_01_18",
        "trash_01_19",
        "trash_01_20",
        "trash_01_21",
        "trash_01_22",
        "trash_01_23",
        "trash_01_24",
        "trash_01_25",
        "trash_01_26",
        "trash_01_27",
        "trash_01_28",
        "trash_01_29",
        "trash_01_30",
        "trash_01_31",
        "trash_01_32",
        "trash_01_33",
        "trash_01_34",
        "trash_01_35",
        "trash_01_36",
        "trash_01_37",
        "trash_01_38",
        "trash_01_39",
        "trash_01_40",
        "trash_01_41",
        "trash_01_42",
        "trash_01_43",
        "trash_01_44",
        "trash_01_45",
        "trash_01_46",
        "trash_01_47",
        "trash_01_48",
        "trash_01_49",
        "trash_01_50",
        "trash_01_51",
        "trash_01_52",
        "trash_01_53",
    },
}
---@return any
local doRandomAgeSpawn = function(_character, _inventory, _itemDef, _items) end
---@return any
local doWildFoodSpawn = function(_character, _inventory, _itemDef, _items) end
---@return any
local doWildCropSpawn = function(_character, _inventory, _itemDef, _items) end
---@return any
local doDeadTrapAnimalSpawn = function(_character, _inventory, _itemDef, _items) end
---@return any
local doGlassesCheck = function(_character, _skillDef, _bonusEffect) end

---@class scavenges
scavenges = {}
scavenges.plants = {}
scavenges.insects = {}
scavenges.fishbait = {}
scavenges.mushrooms = {}
scavenges.berries = {}
scavenges.forestGoods = {}
scavenges.medicinalPlants = {}

---@class forageDefaultDefs
forageDefaultDefs = {
    defaultItemDef = {
        type = "Base.MissingItemType",
        minCount = 1,
        maxCount = 1,
        skill = 0,
        perks = {
            "PlantScavenging",
        },
        xp = 1,
        recipes = {},
        traits = {},
        itemTags = {},
        categories = {
            "Junk",
        },
        rainChance = 0,
        hasRainedChance = 0,
        snowChance = 0,
        dayChance = 0,
        nightChance = 0,
        zones = {
            Forest = 1,
            DeepForest = 1,
            Vegitation = 1,
            FarmLand = 1,
            Farm = 1,
            TrailerPark = 1,
            TownZone = 1,
            Nav = 1,
        },
        months = {
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
        },
        bonusMonths = {},
        malusMonths = {},
        spawnFuncs = {},
        forceOutside = true,
        isOnWater = false,
        forceOnWater = false,
        isMover = false,
        canBeAboveFloor = false,
        doIsoMarkerObject = false,
        doIsoMarkerSprite = nil,
        canBeOnTreeSquare = true,
        poisonChance = 0,
        poisonPowerMin = 0,
        poisonPowerMax = 0,
        poisonDetectionLevel = 0,
        itemSizeModifier = 0,
        isItemOverrideSize = false,
    },
    defaultZoneDef = {
        name = "Unknown",
        densityMin = 1,
        densityMax = 1,
        refillPercent = 1,
        abundanceSetting = "NatureAbundance",
    },
    defaultCatDef = {
        chance = 1,
        name = "Unknown",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 0,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        validFunc = nil,
        rainChance = 0,
        hasRainedChance = 0,
        snowChance = 0,
        dayChance = 0,
        nightChance = 0,
        zoneChance = {
            Forest = 1,
            DeepForest = 1,
            Vegitation = 1,
            FarmLand = 1,
            Farm = 1,
            TrailerPark = 1,
            TownZone = 1,
            Nav = 1,
        },
        spriteAffinities = {},
        chanceToMoveIcon = 0.0,
        chanceToCreateIcon = 0.0,
        focusChanceMin = 0.0,
        focusChanceMax = 0.0,
    },
    defaultSkillDef = {
        name = "default",
        type = "trait",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {},
        testFuncs = {},
    },
}

---@class forageSkills
forageSkills = {
    parkranger = {
        name = "parkranger",
        type = "occupation",
        visionBonus = 2,
        weatherEffect = 33,
        darknessEffect = 15,
        specialisations = {
            ["Animals"] = 10,
            ["Berries"] = 20,
            ["Mushrooms"] = 10,
            ["MedicinalPlants"] = 75,
            ["WildPlants"] = 50,
            ["WildHerbs"] = 50,
            ["ForestRarities"] = 10,
            ["Trash"] = 5,
            ["Junk"] = 5,
        },
    },
    veteran = {
        name = "veteran",
        type = "occupation",
        visionBonus = 1.75,
        weatherEffect = 33,
        darknessEffect = 15,
        specialisations = {
            ["Animals"] = 5,
            ["Ammunition"] = 50,
            ["MedicinalPlants"] = 20,
            ["WildPlants"] = 10,
            ["WildHerbs"] = 10,
            ["ForestRarities"] = 5,
        },
    },
    farmer = {
        name = "farmer",
        type = "occupation",
        visionBonus = 1.5,
        weatherEffect = 33,
        darknessEffect = 10,
        specialisations = {
            ["Animals"] = 10,
            ["Crops"] = 50,
            ["JunkFood"] = 5,
            ["MedicinalPlants"] = 5,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 15,
            ["Fruits"] = 10,
            ["Vegetables"] = 10,
        },
    },
    lumberjack = {
        name = "lumberjack",
        type = "occupation",
        visionBonus = 1.25,
        weatherEffect = 33,
        darknessEffect = 15,
        specialisations = {
            ["Firewood"] = 50,
            ["Mushrooms"] = 20,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
        },
    },
    chef = {
        name = "chef",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Animals"] = 10,
            ["Berries"] = 20,
            ["Mushrooms"] = 50,
            ["JunkFood"] = 15,
            ["MedicinalPlants"] = 15,
            ["WildPlants"] = 10,
            ["WildHerbs"] = 20,
        },
    },
    fisherman = {
        name = "fisherman",
        type = "occupation",
        visionBonus = 1.00,
        weatherEffect = 40,
        darknessEffect = 10,
        specialisations = {
            ["Insects"] = 50,
            ["FishBait"] = 50,
        },
    },
    unemployed = {
        name = "unemployed",
        type = "occupation",
        visionBonus = 0.50,
        weatherEffect = 10,
        darknessEffect = 5,
        specialisations = {
            ["MedicinalPlants"] = 5,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
            ["JunkFood"] = 10,
            ["Trash"] = 10,
            ["Junk"] = 10,
        },
    },
    burgerflipper = {
        name = "burgerflipper",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Animals"] = 5,
            ["Berries"] = 5,
            ["Mushrooms"] = 15,
            ["JunkFood"] = 30,
            ["MedicinalPlants"] = 5,
        },
    },
    doctor = {
        name = "doctor",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Medical"] = 40,
            ["MedicinalPlants"] = 10,
        },
    },
    nurse = {
        name = "nurse",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Medical"] = 40,
            ["MedicinalPlants"] = 10,
        },
    },
    fitnessInstructor = {
        name = "fitnessInstructor",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Medical"] = 5,
            ["JunkFood"] = 25,
            ["MedicinalPlants"] = 15,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
        },
    },
    repairman = {
        name = "repairman",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Trash"] = 33,
            ["Junk"] = 33,
        },
    },
    mechanics = {
        name = "mechanics",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Trash"] = 33,
            ["Junk"] = 33,
        },
    },
    electrician = {
        name = "electrician",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Trash"] = 20,
            ["Junk"] = 20,
        },
    },
    engineer = {
        name = "engineer",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Trash"] = 10,
            ["Junk"] = 10,
        },
    },
    metalworker = {
        name = "metalworker",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Trash"] = 10,
            ["Junk"] = 10,
        },
    },
    constructionworker = {
        name = "constructionworker",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Trash"] = 10,
            ["Junk"] = 10,
        },
    },
    carpenter = {
        name = "carpenter",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Firewood"] = 30,
            ["Junk"] = 10,
        },
    },
    burglar = {
        name = "burglar",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 5,
        darknessEffect = 15,
        specialisations = {
            ["Trash"] = 10,
            ["Junk"] = 10,
            ["JunkWeapons"] = 10,
            ["Ammunition"] = 10,
        },
    },
    securityguard = {
        name = "securityguard",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 5,
        darknessEffect = 10,
        specialisations = {
            ["Trash"] = 10,
            ["Junk"] = 10,
            ["JunkWeapons"] = 10,
            ["Ammunition"] = 10,
        },
    },
    policeofficer = {
        name = "policeofficer",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 5,
        darknessEffect = 10,
        specialisations = {
            ["Trash"] = 10,
            ["Junk"] = 10,
            ["JunkWeapons"] = 10,
            ["Ammunition"] = 10,
        },
    },
    fireofficer = {
        name = "fireofficer",
        type = "occupation",
        visionBonus = 0,
        weatherEffect = 5,
        darknessEffect = 10,
        specialisations = {
            ["Firewood"] = 20,
            ["Junk"] = 10,
        },
    },
    Unlucky = {
        name = "Unlucky",
        type = "trait",
        visionBonus = -1.0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["ForestRarities"] = -5,
            ["Medical"] = -5,
            ["Ammunition"] = -5,
            ["JunkWeapons"] = -5,
        },
    },
    Lucky = {
        name = "Lucky",
        type = "trait",
        visionBonus = 1.0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["ForestRarities"] = 5,
            ["Medical"] = 5,
            ["Ammunition"] = 5,
            ["JunkWeapons"] = 5,
        },
    },
    Formerscout = {
        name = "Formerscout",
        type = "trait",
        visionBonus = 0.7,
        weatherEffect = 13,
        darknessEffect = 3,
        specialisations = {
            ["MedicinalPlants"] = 5,
            ["Trash"] = 10,
        },
    },
    Hiker = {
        name = "Hiker",
        type = "trait",
        visionBonus = 0.7,
        weatherEffect = 13,
        darknessEffect = 3,
        specialisations = {
            ["MedicinalPlants"] = 3,
            ["Berries"] = 3,
            ["Mushrooms"] = 3,
        },
    },
    Hunter = {
        name = "Hunter",
        type = "trait",
        visionBonus = 0.5,
        weatherEffect = 13,
        darknessEffect = 5,
        specialisations = {
            ["Animals"] = 5,
            ["Berries"] = 3,
            ["Mushrooms"] = 3,
            ["MedicinalPlants"] = 3,
        },
    },
    EagleEyed = {
        name = "EagleEyed",
        type = "trait",
        visionBonus = 1.0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {},
    },
    Gardener = {
        name = "Gardener",
        type = "trait",
        visionBonus = 0.4,
        weatherEffect = 13,
        darknessEffect = 0,
        specialisations = {
            ["MedicinalPlants"] = 3,
            ["Crops"] = 5,
            ["Fruits"] = 5,
            ["Vegetables"] = 5,
        },
    },
    Outdoorsman = {
        name = "Outdoorsman",
        type = "trait",
        visionBonus = 0.4,
        weatherEffect = 13,
        darknessEffect = 5,
        specialisations = {
            ["Animals"] = 5,
            ["Berries"] = 5,
            ["Mushrooms"] = 5,
            ["MedicinalPlants"] = 5,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
        },
    },
    Cook = {
        name = "Cook",
        type = "trait",
        visionBonus = 0.2,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Animals"] = 5,
            ["Berries"] = 5,
            ["Mushrooms"] = 5,
            ["JunkFood"] = 5,
            ["MedicinalPlants"] = 3,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
        },
    },
    Cook2 = {
        name = "Cook2",
        type = "trait",
        visionBonus = 0.2,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Animals"] = 5,
            ["Berries"] = 5,
            ["Mushrooms"] = 5,
            ["JunkFood"] = 5,
            ["MedicinalPlants"] = 3,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
        },
    },
    NightVision = {
        name = "NightVision",
        type = "trait",
        visionBonus = 0.4,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {},
    },
    Nutritionist = {
        name = "Nutritionist",
        type = "trait",
        visionBonus = 0.2,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["JunkFood"] = 5,
            ["MedicinalPlants"] = 5,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
        },
    },
    Nutritionist2 = {
        name = "Nutritionist2",
        type = "trait",
        visionBonus = 0.2,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["JunkFood"] = 5,
            ["MedicinalPlants"] = 5,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
        },
    },
    Herbalist = {
        name = "Herbalist",
        type = "trait",
        visionBonus = 0.2,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["MedicinalPlants"] = 15,
            ["WildPlants"] = 5,
            ["WildHerbs"] = 5,
            ["Crops"] = 5,
            ["Berries"] = 5,
            ["Mushrooms"] = 5,
        },
    },
    Agoraphobic = {
        name = "Agoraphobic",
        type = "trait",
        visionBonus = -1.5,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {},
    },
    HeartyAppitite = {
        name = "HeartyAppitite",
        type = "trait",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Animals"] = 3,
            ["Berries"] = 3,
            ["Mushrooms"] = 3,
            ["JunkFood"] = 3,
        },
    },
    Marksman = {
        name = "Marksman",
        type = "trait",
        visionBonus = 0.5,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Ammunition"] = 3,
        },
    },
    FirstAid = {
        name = "FirstAid",
        type = "trait",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Medical"] = 3,
        },
    },
    Fishing = {
        name = "Fishing",
        type = "trait",
        visionBonus = 0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {
            ["Insects"] = 5,
            ["FishBait"] = 5,
        },
    },
    ShortSighted = {
        name = "ShortSighted",
        type = "trait",
        visionBonus = -2.0,
        weatherEffect = 0,
        darknessEffect = 0,
        specialisations = {},
        testFuncs = {
            doGlassesCheck,
        },
    },
}

---@class forageZones
forageZones = {
    DeepForest = {
        name = "DeepForest",
        densityMin = 8,
        densityMax = 10,
        refillPercent = 7,
        abundanceSetting = "NatureAbundance",
    },
    FarmLand = {
        name = "FarmLand",
        densityMin = 5,
        densityMax = 7.5,
        refillPercent = 5,
        abundanceSetting = "NatureAbundance",
    },
    Farm = {
        name = "Farm",
        densityMin = 5,
        densityMax = 7.5,
        refillPercent = 5,
        abundanceSetting = "NatureAbundance",
    },
    Forest = {
        name = "Forest",
        densityMin = 8,
        densityMax = 10,
        refillPercent = 7,
        abundanceSetting = "NatureAbundance",
    },
    Nav = {
        name = "Nav",
        densityMin = 3,
        densityMax = 5,
        refillPercent = 3,
        abundanceSetting = "OtherLoot",
    },
    TownZone = {
        name = "TownZone",
        densityMin = 3,
        densityMax = 5,
        refillPercent = 3,
        abundanceSetting = "OtherLoot",
    },
    TrailerPark = {
        name = "TrailerPark",
        densityMin = 1.5,
        densityMax = 5,
        refillPercent = 3,
        abundanceSetting = "OtherLoot",
    },
    Vegitation = {
        name = "Vegitation",
        densityMin = 6,
        densityMax = 8,
        refillPercent = 5,
        abundanceSetting = "NatureAbundance",
    },
}

forageCategories = {
    ["Animals"] = {
        name = "Animals",
        typeCategory = "Animals",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 5,
        categoryHidden = false,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 15,
            Forest = 15,
            Vegitation = 25,
            FarmLand = 20,
            Farm = 20,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 3,
        },
        spriteAffinities = spriteAffinities.genericPlants,
        chanceToMoveIcon = 3.0,
        chanceToCreateIcon = 0.1,
        focusChanceMin = 5.0,
        focusChanceMax = 15.0,
    },
    ["DeadAnimals"] = {
        name = "DeadAnimals",
        typeCategory = "Animals",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 5,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 3,
            Forest = 2,
            Vegitation = 2,
            FarmLand = 2,
            Farm = 2,
            TrailerPark = 1,
            TownZone = 1,
            Nav = 1,
        },
    },
    ["Berries"] = {
        name = "Berries",
        typeCategory = "Food",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 3,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        zoneChance = {
            DeepForest = 30,
            Forest = 30,
            Vegitation = 20,
            FarmLand = 15,
            Farm = 15,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 1,
        },
        focusChanceMin = 20.0,
        focusChanceMax = 33.3,
    },
    ["Fruits"] = {
        name = "Fruits",
        typeCategory = "Food",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 7,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        zoneChance = {
            Forest = 15,
            DeepForest = 15,
            Vegitation = 15,
            FarmLand = 25,
            Farm = 25,
            TrailerPark = 10,
            TownZone = 5,
            Nav = 0,
        },
        spriteAffinities = spriteAffinities.genericPlants,
        chanceToMoveIcon = 3.0,
        chanceToCreateIcon = 0.1,
        focusChanceMin = 15.0,
        focusChanceMax = 33.3,
    },
    ["Vegetables"] = {
        name = "Vegetables",
        typeCategory = "Food",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 7,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        zoneChance = {
            DeepForest = 10,
            Forest = 10,
            Vegitation = 15,
            FarmLand = 15,
            Farm = 15,
            TrailerPark = 5,
            TownZone = 10,
            Nav = 0,
        },
        spriteAffinities = spriteAffinities.genericPlants,
        chanceToMoveIcon = 3.0,
        chanceToCreateIcon = 0.1,
        focusChanceMin = 15.0,
        focusChanceMax = 33.3,
    },
    ["Crops"] = {
        name = "Crops",
        typeCategory = "Food",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 5,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        zoneChance = {
            DeepForest = 5,
            Forest = 7,
            Vegitation = 10,
            FarmLand = 25,
            Farm = 25,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 0,
        },
        spriteAffinities = spriteAffinities.genericPlants,
        chanceToMoveIcon = 3,
        chanceToCreateIcon = 0.1,
        focusChanceMin = 15.0,
        focusChanceMax = 33.3,
    },
    ["Mushrooms"] = {
        name = "Mushrooms",
        typeCategory = "Food",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 3,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        rainChance = 20,
        hasRainedChance = 50,
        nightChance = 20,
        zoneChance = {
            DeepForest = 30,
            Forest = 30,
            Vegitation = 20,
            FarmLand = 15,
            Farm = 15,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 0,
        },
        spriteAffinities = spriteAffinities.genericPlants,
        chanceToMoveIcon = 3.0,
        chanceToCreateIcon = 0.1,
        focusChanceMin = 20.0,
        focusChanceMax = 33.3,
    },
    ["FishBait"] = {
        name = "FishBait",
        typeCategory = "Animals",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = true,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        rainChance = 50,
        hasRainedChance = 50,
        nightChance = 100,
        zoneChance = {
            DeepForest = 10,
            Forest = 10,
            Vegitation = 15,
            FarmLand = 20,
            Farm = 20,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 1,
        },
        spriteAffinities = spriteAffinities.specialPlants,
        chanceToMoveIcon = 3.0,
        chanceToCreateIcon = 0.1,
    },
    ["ForestGoods"] = {
        name = "ForestGoods",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 0,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 0,
            Forest = 0,
            Vegitation = 0,
            FarmLand = 0,
            Farm = 0,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 0,
        },
    },
    ["ForestRarities"] = {
        name = "ForestRarities",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 8,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 1,
            Forest = 1,
            Vegitation = 0,
            FarmLand = 0,
            Farm = 0,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 0,
        },
    },
    ["Insects"] = {
        name = "Insects",
        typeCategory = "Animals",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = false,
        validFloors = {
            "ANY",
        },
        nightChance = 100,
        zoneChance = {
            DeepForest = 25,
            Forest = 25,
            Vegitation = 25,
            FarmLand = 15,
            Farm = 15,
            TrailerPark = 15,
            TownZone = 15,
            Nav = 10,
        },
        spriteAffinities = spriteAffinities.genericPlants,
        chanceToMoveIcon = 3.0,
        chanceToCreateIcon = 0.1,
        focusChanceMin = 15.0,
        focusChanceMax = 33.3,
    },
    ["MedicinalPlants"] = {
        name = "MedicinalPlants",
        typeCategory = "Medicinal",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 6,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        rainChance = 50,
        hasRainedChance = 25,
        snowChance = -50,
        nightChance = 100,
        zoneChance = {
            DeepForest = 30,
            Forest = 20,
            Vegitation = 15,
            FarmLand = 15,
            Farm = 15,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 0,
        },
        spriteAffinities = spriteAffinities.specialPlants,
        chanceToMoveIcon = 1.0,
        chanceToCreateIcon = 0.5,
        focusChanceMin = 10.0,
        focusChanceMax = 20.0,
    },
    ["WildPlants"] = {
        name = "WildPlants",
        typeCategory = "Food",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        rainChance = 50,
        hasRainedChance = 25,
        snowChance = -50,
        nightChance = 50,
        zoneChance = {
            DeepForest = 15,
            Forest = 10,
            Vegitation = 10,
            FarmLand = 7.5,
            Farm = 7.5,
            TrailerPark = 2.5,
            TownZone = 2.5,
            Nav = 0,
        },
        spriteAffinities = spriteAffinities.specialPlants,
        chanceToMoveIcon = 1.0,
        chanceToCreateIcon = 0.0,
        focusChanceMin = 10.0,
        focusChanceMax = 20.0,
    },
    ["WildHerbs"] = {
        name = "WildHerbs",
        typeCategory = "Food",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = false,
        validFloors = {
            "floors_exterior_natural",
            "blends_natural",
        },
        rainChance = 50,
        hasRainedChance = 25,
        snowChance = -50,
        nightChance = 50,
        zoneChance = {
            DeepForest = 10,
            Forest = 7.5,
            Vegitation = 7.5,
            FarmLand = 5.0,
            Farm = 5.0,
            TrailerPark = 1.5,
            TownZone = 1.5,
            Nav = 0,
        },
        spriteAffinities = spriteAffinities.specialPlants,
        chanceToMoveIcon = 1.0,
        chanceToCreateIcon = 1.0,
        focusChanceMin = 10.0,
        focusChanceMax = 20.0,
    },
    ["Firewood"] = {
        name = "Firewood",
        typeCategory = "Materials",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 0,
        categoryHidden = false,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 150,
            Forest = 150,
            Vegitation = 75,
            FarmLand = 35,
            Farm = 35,
            TrailerPark = 10,
            TownZone = 10,
            Nav = 15,
        },
        spriteAffinities = spriteAffinities.firewood,
        chanceToMoveIcon = 20.0,
        chanceToCreateIcon = 10.0,
        focusChanceMin = 25.0,
        focusChanceMax = 40.0,
    },
    ["Stones"] = {
        name = "Stones",
        typeCategory = "Materials",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 0,
        categoryHidden = false,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 30,
            Forest = 30,
            Vegitation = 30,
            FarmLand = 30,
            Farm = 30,
            TrailerPark = 15,
            TownZone = 15,
            Nav = 120,
        },
        spriteAffinities = spriteAffinities.stones,
        chanceToMoveIcon = 20.0,
        chanceToCreateIcon = 10.0,
        focusChanceMin = 25.0,
        focusChanceMax = 40.0,
    },
    ["Junk"] = {
        name = "Junk",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 3,
            Forest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 7,
            TownZone = 7,
            Nav = 3,
        },
        spriteAffinities = spriteAffinities.trash,
        chanceToMoveIcon = 20.0,
        chanceToCreateIcon = 10.0,
        focusChanceMin = 5.0,
        focusChanceMax = 10.0,
    },
    ["JunkFood"] = {
        name = "JunkFood",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 1,
            Forest = 1,
            Vegitation = 1,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 1,
        },
    },
    ["Clothing"] = {
        name = "Clothing",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 1,
            Forest = 1,
            Vegitation = 1,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 7,
            TownZone = 7,
            Nav = 1,
        },
    },
    ["JunkWeapons"] = {
        name = "JunkWeapons",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 1,
            Forest = 1,
            Vegitation = 1,
            FarmLand = 1,
            Farm = 1,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
    },
    ["Ammunition"] = {
        name = "Ammunition",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 8,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 1,
            Forest = 1,
            Vegitation = 1,
            FarmLand = 1,
            Farm = 1,
            TrailerPark = 2,
            TownZone = 2,
            Nav = 1,
        },
    },
    ["Medical"] = {
        name = "Medical",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 8,
        categoryHidden = true,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 0,
            Forest = 0,
            Vegitation = 1,
            FarmLand = 0,
            Farm = 0,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 1,
        },
    },
    ["Trash"] = {
        name = "Trash",
        typeCategory = "Other",
        identifyCategoryPerk = "PlantScavenging",
        identifyCategoryLevel = 4,
        categoryHidden = false,
        validFloors = {
            "ANY",
        },
        zoneChance = {
            DeepForest = 5,
            Forest = 5,
            Vegitation = 10,
            FarmLand = 5,
            Farm = 5,
            TrailerPark = 40,
            TownZone = 40,
            Nav = 30,
        },
        spriteAffinities = spriteAffinities.trash,
        chanceToMoveIcon = 20.0,
        chanceToCreateIcon = 10.0,
        focusChanceMin = 15.0,
        focusChanceMax = 25.0,
    },
}

---@class forageDefs
forageDefs = {
    Cherry = {
        type = "Base.Cherry",
        minCount = 1,
        maxCount = 4,
        skill = 4,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            5,
            6,
            7,
            8,
            9,
        },
        bonusMonths = {
            6,
            7,
            8,
        },
        malusMonths = {
            5,
            9,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Strewberrie = {
        type = "farming.Strewberrie",
        skill = 8,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            4,
            5,
            6,
        },
        malusMonths = {
            1,
            2,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
            doWildCropSpawn,
        },
        altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildstrawberry_worldSprite.png"),
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Lemon = {
        type = "Base.Lemon",
        minCount = 1,
        maxCount = 3,
        skill = 6,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        bonusMonths = {
            1,
            2,
            12,
        },
        malusMonths = {
            3,
            4,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Lime = {
        type = "Base.Lime",
        minCount = 1,
        maxCount = 3,
        skill = 6,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        bonusMonths = {
            1,
            2,
            12,
        },
        malusMonths = {
            3,
            4,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Grapefruit = {
        type = "Base.Grapefruit",
        minCount = 1,
        maxCount = 1,
        skill = 8,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        bonusMonths = {
            1,
            2,
            12,
        },
        malusMonths = {
            3,
            4,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Peach = {
        type = "Base.Peach",
        minCount = 1,
        maxCount = 2,
        skill = 8,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            4,
            5,
            6,
            7,
            8,
            9,
            10,
        },
        bonusMonths = {
            6,
            7,
            8,
        },
        malusMonths = {
            4,
            5,
            9,
            10,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Pear = {
        type = "Base.Pear",
        minCount = 1,
        maxCount = 2,
        skill = 8,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            7,
            8,
            9,
            10,
        },
        bonusMonths = {
            8,
            9,
        },
        malusMonths = {
            7,
            10,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    PepperHabanero = {
        type = "Base.PepperHabanero",
        minCount = 1,
        maxCount = 4,
        skill = 6,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            6,
            7,
            8,
            9,
            10,
        },
        bonusMonths = {
            7,
            8,
            9,
        },
        malusMonths = {
            6,
            10,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    PepperJalapeno = {
        type = "Base.PepperJalapeno",
        minCount = 1,
        maxCount = 4,
        skill = 6,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            6,
            7,
            8,
            9,
            10,
        },
        bonusMonths = {
            7,
            8,
            9,
        },
        malusMonths = {
            6,
            10,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Pineapple = {
        type = "Base.Pineapple",
        skill = 10,
        xp = 15,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            FarmLand = 3,
            Farm = 3,
        },
        months = {
            2,
            3,
            4,
            5,
            6,
            7,
            8,
        },
        bonusMonths = {
            4,
            5,
            6,
        },
        malusMonths = {
            2,
            8,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.vines,
    },
    Grapes = {
        type = "Base.Grapes",
        skill = 7,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            6,
            7,
            8,
            9,
            10,
            11,
            12,
        },
        bonusMonths = {
            8,
            9,
            10,
        },
        malusMonths = {
            6,
            12,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.vines,
    },
    Orange = {
        type = "Base.Orange",
        minCount = 1,
        maxCount = 3,
        skill = 5,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            4,
            5,
            6,
            7,
            8,
            9,
        },
        malusMonths = {
            2,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Apple = {
        type = "Base.Apple",
        minCount = 1,
        maxCount = 3,
        skill = 7,
        xp = 5,
        snowChance = -10,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 10,
            FarmLand = 15,
            Farm = 15,
        },
        months = {
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
        },
        bonusMonths = {
            7,
            8,
            9,
            10,
        },
        malusMonths = {
            5,
            12,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Banana = {
        type = "Base.Banana",
        minCount = 1,
        maxCount = 1,
        skill = 9,
        xp = 15,
        snowChance = -100,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 1,
            FarmLand = 3,
            Farm = 3,
        },
        bonusMonths = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
        },
        malusMonths = {
            1,
            2,
            11,
            12,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Watermelon = {
        type = "Base.Watermelon",
        skill = 10,
        xp = 15,
        snowChance = -20,
        categories = {
            "Fruits",
        },
        zones = {
            Forest = 1,
            FarmLand = 3,
            Farm = 3,
        },
        months = {
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
        },
        bonusMonths = {
            7,
            8,
            9,
            10,
        },
        malusMonths = {
            5,
            12,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.vines,
    },
    Onion = {
        type = "Base.Onion",
        skill = 3,
        xp = 5,
        snowChance = -10,
        categories = {
            "Vegetables",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 5,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            9,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Lettuce = {
        type = "Base.Lettuce",
        skill = 7,
        xp = 5,
        snowChance = -30,
        categories = {
            "Vegetables",
        },
        zones = {
            Vegitation = 1,
            FarmLand = 4,
            Farm = 4,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.vines,
    },
    BellPepper = {
        type = "Base.BellPepper",
        skill = 7,
        xp = 5,
        snowChance = -20,
        categories = {
            "Vegetables",
        },
        zones = {
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Avocado = {
        type = "Base.Avocado",
        skill = 8,
        xp = 15,
        snowChance = -50,
        categories = {
            "Vegetables",
        },
        zones = {
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Zucchini = {
        type = "Base.Zucchini",
        skill = 8,
        xp = 15,
        snowChance = -30,
        categories = {
            "Vegetables",
        },
        zones = {
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.shrubs,
    },
    Corn = {
        type = "Base.Corn",
        skill = 8,
        xp = 15,
        snowChance = -30,
        categories = {
            "Vegetables",
        },
        zones = {
            Vegitation = 1,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = getTexture("media/textures/Foraging/worldSprites/corn_worldSprite.png"),
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Eggplant = {
        type = "Base.Eggplant",
        skill = 8,
        xp = 15,
        snowChance = -50,
        categories = {
            "Vegetables",
        },
        zones = {
            FarmLand = 3,
            Farm = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.shrubs,
    },
    Leek = {
        type = "Base.Leek",
        skill = 2,
        xp = 15,
        snowChance = -30,
        categories = {
            "Vegetables",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            9,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Carrots = {
        type = "Base.Carrots",
        skill = 2,
        xp = 5,
        snowChance = -30,
        categories = {
            "Crops",
        },
        zones = {
            Forest = 7,
            Vegitation = 7,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
            doWildCropSpawn,
        },
        altWorldTexture = {
            getTexture("media/textures/Foraging/worldSprites/wildcarrot_worldSprite.png"),
        },
    },
    Broccoli = {
        type = "Base.Broccoli",
        skill = 2,
        xp = 5,
        snowChance = -30,
        categories = {
            "Crops",
        },
        zones = {
            Forest = 7,
            Vegitation = 7,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            6,
            7,
            8,
        },
        malusMonths = {
            5,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
            doWildCropSpawn,
        },
        altWorldTexture = worldSprites.shrubs,
    },
    Potato = {
        type = "farming.Potato",
        skill = 2,
        xp = 5,
        snowChance = -30,
        categories = {
            "Crops",
        },
        zones = {
            Forest = 7,
            Vegitation = 7,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
            doWildCropSpawn,
        },
        altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildpotato_worldSprite.png"),
    },
    Cabbage = {
        type = "farming.Cabbage",
        skill = 2,
        xp = 5,
        snowChance = -10,
        categories = {
            "Crops",
        },
        zones = {
            Forest = 3,
            Vegitation = 3,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
            doWildCropSpawn,
        },
        altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildcabbage_worldSprite.png"),
    },
    Tomato = {
        type = "farming.Tomato",
        skill = 2,
        xp = 5,
        snowChance = -10,
        categories = {
            "Crops",
        },
        zones = {
            Forest = 3,
            Vegitation = 3,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
            doWildCropSpawn,
        },
        altWorldTexture = getTexture("media/textures/Foraging/worldSprites/wildtomato_worldSprite.png"),
    },
    RedRadish = {
        type = "farming.RedRadish",
        skill = 2,
        xp = 5,
        snowChance = -10,
        categories = {
            "Crops",
        },
        zones = {
            Forest = 3,
            Vegitation = 3,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
            doWildCropSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Daikon = {
        type = "Base.Daikon",
        skill = 5,
        xp = 10,
        snowChance = -10,
        categories = {
            "Vegetables",
        },
        zones = {
            Vegitation = 1,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Peanuts = {
        type = "Base.Peanuts",
        skill = 7,
        xp = 15,
        snowChance = -30,
        categories = {
            "Vegetables",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
        },
        months = {
            9,
            10,
            11,
        },
        bonusMonths = {
            10,
        },
        malusMonths = {
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Pumpkin = {
        type = "Base.Pumpkin",
        skill = 7,
        xp = 15,
        snowChance = -30,
        categories = {
            "Vegetables",
        },
        zones = {
            Forest = 1,
            DeepForest = 1,
            Vegitation = 1,
            FarmLand = 1,
            Farm = 1,
        },
        months = {
            9,
            10,
            11,
        },
        bonusMonths = {
            10,
        },
        malusMonths = {
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Mango = {
        type = "Base.Mango",
        skill = 7,
        xp = 15,
        snowChance = -30,
        categories = {
            "Vegetables",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
        },
        months = {
            9,
            10,
            11,
        },
        bonusMonths = {
            10,
        },
        malusMonths = {
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.smallTrees,
    },
    Violets = {
        type = "Base.Violets",
        minCount = 3,
        maxCount = 6,
        xp = 5,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = {
            {
                "d_plants_1_40",
            },
            {
                "d_plants_1_41",
            },
            {
                "d_plants_1_44",
            },
        },
        doIsoMarkerObject = true,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    SunflowerSeeds = {
        type = "Base.SunflowerSeeds",
        minCount = 3,
        maxCount = 6,
        xp = 5,
        rainChance = -50,
        snowChance = -100,
        nightChance = -100,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = {
            {
                "d_plants_1_18",
                "d_plants_1_26",
            },
        },
        doIsoMarkerObject = true,
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    GrapeLeaves = {
        type = "Base.GrapeLeaves",
        minCount = 3,
        maxCount = 6,
        skill = 2,
        xp = 5,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.vines,
    },
    Rosehips = {
        type = "Base.Rosehips",
        minCount = 3,
        maxCount = 6,
        skill = 4,
        xp = 5,
        rainChance = 20,
        snowChance = -100,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            1,
            2,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
        },
        bonusMonths = {
            9,
            10,
            11,
        },
        malusMonths = {
            5,
            6,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.shrubs,
    },
    Acorn = {
        type = "Base.Acorn",
        minCount = 3,
        maxCount = 6,
        xp = 5,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Dandelions = {
        type = "Base.Dandelions",
        minCount = 3,
        maxCount = 6,
        xp = 5,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Nettles = {
        type = "Base.Nettles",
        minCount = 3,
        maxCount = 6,
        xp = 5,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    GingerRoot = {
        type = "Base.GingerRoot",
        minCount = 1,
        maxCount = 3,
        xp = 15,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 1,
            DeepForest = 1,
            Vegitation = 1,
            FarmLand = 1,
            Farm = 1,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Thistle = {
        type = "Base.Thistle",
        minCount = 3,
        maxCount = 6,
        xp = 5,
        categories = {
            "WildPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            5,
            6,
            7,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        itemSizeModifier = 1.0,
        isItemOverrideSize = true,
    },
    Plantain = {
        type = "Base.Plantain",
        minCount = 2,
        maxCount = 8,
        xp = 15,
        recipes = {
            "Herbalist",
        },
        categories = {
            "MedicinalPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 15,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Comfrey = {
        type = "Base.Comfrey",
        minCount = 2,
        maxCount = 8,
        xp = 15,
        recipes = {
            "Herbalist",
        },
        categories = {
            "MedicinalPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 15,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        altWorldTexture = worldSprites.vines,
    },
    WildGarlic = {
        type = "Base.WildGarlic2",
        minCount = 2,
        maxCount = 8,
        xp = 15,
        recipes = {
            "Herbalist",
        },
        categories = {
            "MedicinalPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 15,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    CommonMallow = {
        type = "Base.CommonMallow",
        minCount = 2,
        maxCount = 8,
        xp = 15,
        recipes = {
            "Herbalist",
        },
        categories = {
            "MedicinalPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 15,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.vines,
    },
    LemonGrass = {
        type = "Base.LemonGrass",
        minCount = 2,
        maxCount = 8,
        xp = 5,
        categories = {
            "MedicinalPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 15,
            Vegitation = 15,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = getTexture("media/textures/Foraging/worldSprites/lemongrass_worldSprite.png"),
    },
    BlackSage = {
        type = "Base.BlackSage",
        minCount = 2,
        maxCount = 8,
        xp = 15,
        recipes = {
            "Herbalist",
        },
        categories = {
            "MedicinalPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 15,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    Ginseng = {
        type = "Base.Ginseng",
        minCount = 2,
        maxCount = 8,
        xp = 15,
        recipes = {
            "Herbalist",
        },
        categories = {
            "MedicinalPlants",
        },
        zones = {
            Forest = 10,
            DeepForest = 15,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        spawnFuncs = {
            doWildFoodSpawn,
            doRandomAgeSpawn,
        },
        altWorldTexture = worldSprites.wildPlants,
    },
    WildEggs = {
        type = "Base.WildEggs",
        minCount = 1,
        maxCount = 3,
        skill = 8,
        xp = 10,
        rainChance = -20,
        snowChance = -20,
        categories = {
            "Animals",
        },
        zones = {
            Forest = 5,
            DeepForest = 10,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doRandomAgeSpawn,
        },
    },
    Egg = {
        type = "Base.Egg",
        minCount = 1,
        maxCount = 3,
        skill = 8,
        xp = 10,
        rainChance = -20,
        snowChance = -20,
        categories = {
            "Animals",
        },
        zones = {
            Forest = 5,
            DeepForest = 10,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doRandomAgeSpawn,
        },
    },
    Worm = {
        type = "Base.Worm",
        minCount = 1,
        maxCount = 2,
        skill = 0,
        xp = 10,
        rainChance = 100,
        snowChance = -100,
        dayChance = -50,
        nightChance = 50,
        categories = {
            "FishBait",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 5,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
    },
    Frog = {
        type = "Base.Frog",
        skill = 7,
        xp = 10,
        rainChance = 100,
        snowChance = -100,
        dayChance = -50,
        nightChance = 50,
        categories = {
            "Animals",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            Vegitation = 5,
            FarmLand = 2,
            Farm = 2,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 0,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
    },
    Slug = {
        type = "Base.Slug",
        skill = 3,
        xp = 10,
        rainChance = 100,
        snowChance = -100,
        dayChance = -50,
        nightChance = 50,
        categories = {
            "Animals",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            Vegitation = 5,
            FarmLand = 2,
            Farm = 2,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 0,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
    },
    Slug2 = {
        type = "Base.Slug2",
        skill = 3,
        xp = 10,
        rainChance = 100,
        snowChance = -100,
        dayChance = -50,
        nightChance = 50,
        categories = {
            "Animals",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            Vegitation = 5,
            FarmLand = 2,
            Farm = 2,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 0,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
    },
    Snail = {
        type = "Base.Snail",
        skill = 3,
        xp = 10,
        rainChance = 100,
        snowChance = -100,
        dayChance = -50,
        nightChance = 50,
        categories = {
            "Animals",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            Vegitation = 5,
            FarmLand = 2,
            Farm = 2,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 0,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
    },
    DeadBird = {
        type = "Base.DeadBird",
        skill = 7,
        xp = 10,
        rainChance = -10,
        snowChance = -10,
        categories = {
            "DeadAnimals",
        },
        zones = {
            Forest = 2,
            DeepForest = 2,
            Vegitation = 2,
            FarmLand = 2,
            Farm = 2,
            TrailerPark = 2,
            TownZone = 2,
            Nav = 2,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doDeadTrapAnimalSpawn,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    DeadSquirrel = {
        type = "Base.DeadSquirrel",
        skill = 8,
        xp = 10,
        rainChance = -10,
        snowChance = -10,
        categories = {
            "DeadAnimals",
        },
        zones = {
            Forest = 2,
            DeepForest = 2,
            Vegitation = 2,
            FarmLand = 1,
            Farm = 1,
            TrailerPark = 2,
            TownZone = 2,
            Nav = 1,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doDeadTrapAnimalSpawn,
        },
    },
    DeadRabbit = {
        type = "Base.DeadRabbit",
        skill = 10,
        xp = 10,
        rainChance = -10,
        snowChance = -10,
        categories = {
            "DeadAnimals",
        },
        zones = {
            Forest = 1,
            DeepForest = 1,
            Vegitation = 2,
            FarmLand = 2,
            Farm = 2,
            TrailerPark = 0,
            TownZone = 0,
            Nav = 1,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doDeadTrapAnimalSpawn,
        },
    },
    DeadRat = {
        type = "Base.DeadRat",
        skill = 5,
        xp = 10,
        rainChance = -10,
        snowChance = -10,
        categories = {
            "DeadAnimals",
        },
        zones = {
            Forest = 2,
            DeepForest = 2,
            Vegitation = 2,
            FarmLand = 5,
            Farm = 5,
            TrailerPark = 10,
            TownZone = 10,
            Nav = 1,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        spawnFuncs = {
            doDeadTrapAnimalSpawn,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Cricket = {
        type = "Base.Cricket",
        skill = 0,
        xp = 5,
        rainChance = 50,
        snowChance = -100,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
            TrailerPark = 10,
            TownZone = 10,
            Nav = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Grasshopper = {
        type = "Base.Grasshopper",
        skill = 0,
        xp = 5,
        rainChance = 20,
        snowChance = -100,
        dayChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
            TrailerPark = 10,
            TownZone = 10,
            Nav = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        bonusMonths = {
            6,
            7,
            8,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Cockroach = {
        type = "Base.Cockroach",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 10,
            DeepForest = 10,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
            TrailerPark = 10,
            TownZone = 10,
            Nav = 10,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Pillbug = {
        type = "Base.Pillbug",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Centipede = {
        type = "Base.Centipede",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Centipede2 = {
        type = "Base.Centipede2",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Millipede = {
        type = "Base.Millipede",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Millipede2 = {
        type = "Base.Millipede2",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    AmericanLadyCaterpillar = {
        type = "Base.AmericanLadyCaterpillar",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    BandedWoolyBearCaterpillar = {
        type = "Base.BandedWoolyBearCaterpillar",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    MonarchCaterpillar = {
        type = "Base.MonarchCaterpillar",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    SilkMothCaterpillar = {
        type = "Base.SilkMothCaterpillar",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    SwallowtailCaterpillar = {
        type = "Base.SwallowtailCaterpillar",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Termites = {
        type = "Base.Termites",
        skill = 0,
        xp = 5,
        rainChance = 10,
        snowChance = -20,
        nightChance = 100,
        categories = {
            "Insects",
            "FishBait",
        },
        zones = {
            Forest = 3,
            DeepForest = 3,
            Vegitation = 3,
            FarmLand = 3,
            Farm = 3,
            TrailerPark = 3,
            TownZone = 3,
            Nav = 3,
        },
        months = {
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
        },
        malusMonths = {
            3,
            4,
        },
        forceOutside = false,
        canBeAboveFloor = true,
    },
    Log = {
        type = "Base.Log",
        skill = 0,
        xp = 5,
        categories = {
            "Firewood",
        },
        zones = {
            DeepForest = 3,
            Forest = 2,
            Vegitation = 1,
        },
        bonusMonths = {
            9,
            10,
            11,
        },
        itemSizeModifier = 5,
        isItemOverrideSize = true,
    },
    TreeBranch = {
        type = "Base.TreeBranch",
        minCount = 1,
        maxCount = 2,
        xp = 2,
        categories = {
            "Firewood",
        },
        zones = {
            DeepForest = 15,
            Forest = 15,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 5,
        },
        bonusMonths = {
            9,
            10,
            11,
        },
    },
    Twigs = {
        type = "Base.Twigs",
        minCount = 1,
        maxCount = 3,
        xp = 1,
        categories = {
            "Firewood",
        },
        zones = {
            Forest = 20,
            DeepForest = 20,
            Vegitation = 20,
            FarmLand = 15,
            Farm = 15,
            TrailerPark = 10,
            TownZone = 10,
            Nav = 10,
        },
        bonusMonths = {
            9,
            10,
            11,
        },
    },
    Pinecone = {
        type = "Base.Pinecone",
        minCount = 1,
        maxCount = 3,
        xp = 1,
        categories = {
            "Firewood",
        },
        zones = {
            DeepForest = 15,
            Forest = 15,
            Vegitation = 10,
            FarmLand = 10,
            Farm = 10,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 5,
        },
        months = {
            9,
            10,
            11,
            12,
        },
    },
    SharpedStone = {
        type = "Base.SharpedStone",
        snowChance = -50,
        xp = 2,
        categories = {
            "Stones",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 5,
        },
    },
    Stone = {
        type = "Base.Stone",
        snowChance = -50,
        xp = 1,
        categories = {
            "Stones",
        },
        zones = {
            Forest = 5,
            DeepForest = 5,
            Vegitation = 5,
            FarmLand = 5,
            Farm = 5,
            TrailerPark = 5,
            TownZone = 5,
            Nav = 5,
        },
        months = {
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
        },
    },
    CampfireKit = {
        type = "camping.CampfireKit",
        skill = 2,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 10,
        },
    },
    CampingTentKit = {
        type = "camping.CampingTentKit",
        skill = 2,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 10,
        },
    },
    HottieZ = {
        type = "Base.HottieZ",
        skill = 0,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    Tarp = {
        type = "Base.Tarp",
        skill = 2,
        xp = 25,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 5,
        },
    },
    TentPeg = {
        type = "camping.TentPeg",
        minCount = 4,
        maxCount = 6,
        skill = 2,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 10,
        },
    },
    TrapBox = {
        type = "Base.TrapBox",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    TrapCage = {
        type = "Base.TrapCage",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    TrapCrate = {
        type = "Base.TrapCrate",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    TrapMouse = {
        type = "Base.TrapMouse",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    TrapSnare = {
        type = "Base.TrapSnare",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    TrapStick = {
        type = "Base.TrapStick",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    Bag_NormalHikingBag = {
        type = "Base.Bag_NormalHikingBag",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
    Bag_BigHikingBag = {
        type = "Base.Bag_BigHikingBag",
        skill = 8,
        xp = 15,
        categories = {
            "ForestRarities",
        },
        zones = {
            DeepForest = 1,
        },
    },
}
