GLOBAL.setmetatable(env,{__index=function(t,k) return GLOBAL.rawget(GLOBAL,k) end}) local function launchitem(item, angle) local speed = math.random() * 2 + 2 angle = (angle + math.random() * 180 - 30) * DEGREES item.Physics:SetVel(speed * math.cos(angle), math.random() * 2 + 15, speed * math.sin(angle)) end AddPrefabPostInit("critterlab", function(inst) if GLOBAL.TheWorld.ismastersim then RemovePhysicsColliders(inst) inst:AddComponent("trader") inst:AddComponent("tradable") inst.components.trader:SetAcceptTest(function(inst, item, giver) if item.prefab == "opalpreciousgem" then local trinkets_rook = { "trinket_28", "trinket_29", } local trinkets_bishop = { "trinket_15", "trinket_16", } local trinkets_knight = { "trinket_30", "trinket_31" } local trinket_to_spawn1 = trinkets_bishop[math.random(#trinkets_bishop)] local trinket_to_spawn2 = trinkets_rook[math.random(#trinkets_rook)] local trinket_to_spawn3 = trinkets_knight[math.random(#trinkets_knight)] local trinket1 = SpawnPrefab(trinket_to_spawn1) local trinket2 = SpawnPrefab(trinket_to_spawn2) local trinket3 = SpawnPrefab(trinket_to_spawn3) local fx = SpawnPrefab("fx_book_light_upgraded") trinket1.Transform:SetPosition(inst.Transform:GetWorldPosition()) trinket2.Transform:SetPosition(inst.Transform:GetWorldPosition()) trinket3.Transform:SetPosition(inst.Transform:GetWorldPosition()) fx.Transform:SetPosition(inst.Transform:GetWorldPosition()) launchitem(trinket1, math.random(1, 359)) launchitem(trinket2, math.random(1, 359)) launchitem(trinket3, math.random(1, 359)) return true end end) end end)