-- seg_time = 30 -- total_day_time = seg_time*16 -- PERISH_FRESH = 0.5, -- PERISH_STALE = 0.2, -- local perish_warp = 1--/200 -- PERISH_ONE_DAY = 1*total_day_time*perish_warp, -- PERISH_TWO_DAY = 2*total_day_time*perish_warp, -- PERISH_SUPERFAST = 3*total_day_time*perish_warp, -- PERISH_FAST = 6*total_day_time*perish_warp, -- PERISH_FASTISH = 8*total_day_time*perish_warp, -- PERISH_MED = 10*total_day_time*perish_warp, -- PERISH_SLOW = 15*total_day_time*perish_warp, -- PERISH_PRESERVED = 20*total_day_time*perish_warp, -- PERISH_SUPERSLOW = 40*total_day_time*perish_warp, -- long spring (31), short summer (+10 = 41), long autumn (+30 = 71), short winter (+10 = 81) local PERISH_YEAR = 81*GLOBAL.TUNING.TOTAL_DAY_TIME --*perish_warp local honey_spoilage = GetModConfigData("honey_spoilage") local meat_dried_spoilage = GetModConfigData("meat_dried_spoilage") local smallmeat_dried_spoilage = GetModConfigData("smallmeat_dried_spoilage") local monstermeat_dried_spoilage = GetModConfigData("monstermeat_dried_spoilage") local kelp_dried_spoilage = GetModConfigData("kelp_dried_spoilage") local seed_spoilage = GetModConfigData("seed_spoilage") local crop_seed_adjustment = GetModConfigData("crop_seed_spoilage") local birchnut_spoilage = GetModConfigData("birchnut_spoilage") local trailmix_spoilage = GetModConfigData("trailmix_spoilage") local jammypreserves_spoilage = GetModConfigData("jammypreserves_spoilage") local garlic_spoilage = GetModConfigData("garlic_spoilage") local onion_spoilage = GetModConfigData("onion_spoilage") local taffy_spoilage = GetModConfigData("taffy_spoilage") function noSpoil(inst) if inst.components.perishable then inst:RemoveComponent("perishable") end end function yearSpoil(inst) if inst.components.perishable then inst.components.perishable.perishtime = PERISH_YEAR*2 -- 1 year fresh, 1 year stale/spoiled inst.components.perishable:SetPercent(1) end end function halfYearSpoil(inst) if inst.components.perishable then inst.components.perishable.perishtime = PERISH_YEAR -- half a year fresh, half a year stale/spoiled inst.components.perishable:SetPercent(1) end end if honey_spoilage == 0 then AddPrefabPostInit("honey",noSpoil) end if meat_dried_spoilage == 0 then AddPrefabPostInit("meat_dried",yearSpoil) elseif meat_dried_spoilage == 1 then AddPrefabPostInit("meat_dried",noSpoil) end if smallmeat_dried_spoilage == 0 then AddPrefabPostInit("smallmeat_dried",yearSpoil) elseif smallmeat_dried_spoilage == 1 then AddPrefabPostInit("smallmeat_dried",noSpoil) end if monstermeat_dried_spoilage == 0 then AddPrefabPostInit("monstermeat_dried",yearSpoil) elseif monstermeat_dried_spoilage == 1 then AddPrefabPostInit("monstermeat_dried",noSpoil) end if kelp_dried_spoilage == 0 then AddPrefabPostInit("kelp_dried",yearSpoil) elseif kelp_dried_spoilage == 1 then AddPrefabPostInit("kelp_dried",noSpoil) end if seed_spoilage == 0 then AddPrefabPostInit("seeds",noSpoil) AddPrefabPostInit("carrot_seeds",noSpoil) AddPrefabPostInit("corn_seeds",noSpoil) AddPrefabPostInit("dragonfruit_seeds",noSpoil) AddPrefabPostInit("durian_seeds",noSpoil) AddPrefabPostInit("eggplant_seeds",noSpoil) AddPrefabPostInit("pomegranate_seeds",noSpoil) AddPrefabPostInit("pumpkin_seeds",noSpoil) AddPrefabPostInit("watermelon_seeds",noSpoil) AddPrefabPostInit("sweet_potato_seeds",noSpoil) AddPrefabPostInit("aloe_seeds",noSpoil) AddPrefabPostInit("asparagus_seeds",noSpoil) AddPrefabPostInit("radish_seeds",noSpoil) AddPrefabPostInit("tomato_seeds",noSpoil) AddPrefabPostInit("potato_seeds",noSpoil) AddPrefabPostInit("onion_seeds",noSpoil) AddPrefabPostInit("pepper_seeds",noSpoil) AddPrefabPostInit("garlic_seeds",noSpoil) AddPrefabPostInit("pineananas_seeds",noSpoil) end if birchnut_spoilage == 0 then AddPrefabPostInit("acorn",noSpoil) end if trailmix_spoilage == 0 then AddPrefabPostInit("trailmix",yearSpoil) elseif trailmix_spoilage == 1 then AddPrefabPostInit("trailmix",noSpoil) end if jammypreserves_spoilage == 0 then AddPrefabPostInit("jammypreserves",yearSpoil) elseif jammypreserves_spoilage == 1 then AddPrefabPostInit("jammypreserves",noSpoil) end if garlic_spoilage == 0 then AddPrefabPostInit("garlic",halfYearSpoil) elseif garlic_spoilage == 1 then AddPrefabPostInit("garlic",noSpoil) end if onion_spoilage == 0 then AddPrefabPostInit("onion",halfYearSpoil) elseif onion_spoilage == 1 then AddPrefabPostInit("onion",noSpoil) end if taffy_spoilage == 0 then AddPrefabPostInit("taffy",yearSpoil) elseif taffy_spoilage == 1 then AddPrefabPostInit("taffy",noSpoil) end --------- BIRD SEED CHANGES --------- local SpawnPrefab = GLOBAL.SpawnPrefab local Prefab = GLOBAL.Prefab local Prefabs = GLOBAL.Prefabs local FRAMES = GLOBAL.FRAMES local FOODTYPE = GLOBAL.FOODTYPE local minseeds = GetModConfigData("min_bird_seeds") local maxseeds = GetModConfigData("max_bird_seeds") local function OnDigestMOD(inst, item) if item.components.edible.foodtype == FOODTYPE.MEAT then inst.components.lootdropper:SpawnLootPrefab("bird_egg") else local seed_name = string.lower(item.prefab .. "_seeds") if Prefabs[seed_name] ~= nil then local num_seeds = math.random(minseeds, maxseeds) for k = 1, num_seeds do inst.components.lootdropper:SpawnLootPrefab(seed_name) end else inst.components.lootdropper:SpawnLootPrefab("seeds") end end end local function OnGetItemFromPlayer(inst, giver, item) if inst.components.sleeper and inst.components.sleeper:IsAsleep() then inst.components.sleeper:WakeUp() end if item.components.edible ~= nil and ( item.components.edible.foodtype == FOODTYPE.MEAT or item.prefab == "seeds" or Prefabs[string.lower(item.prefab.."_seeds")] ~= nil ) then inst.AnimState:PlayAnimation("peck") inst.AnimState:PushAnimation("peck") inst.AnimState:PushAnimation("peck") inst.AnimState:PushAnimation("hop") inst.AnimState:PushAnimation("idle_bird", true) inst:DoTaskInTime(60 * FRAMES, OnDigestMOD, item) else inst.components.lootdropper:SpawnLootPrefab(item) end end local function modded_birdcage(inst) if inst and inst.components.trader then inst.components.trader.onaccept = OnGetItemFromPlayer end end AddPrefabPostInit("birdcage", modded_birdcage) ---------------- Damage Modifier -------------- local pc_dmg_taken_mod = GetModConfigData("pc_dmg_taken_mod"); if (pc_dmg_taken_mod > 1.0) then pc_dmg_taken_mod = 1.0-pc_dmg_taken_mod end GLOBAL.TUNING.PLAYER_DAMAGE_TAKEN_MOD = pc_dmg_taken_mod