I have a problem I haven't been able to figure out, as follows: Suppose I have a game running on the blockchain (a solidity/smart contract game) where there are a limited number of plots of land that people can purchase. Hidden in each plot of land are some resources and items - these are known to the game developer (me) a priori and are stored in an encrypted manner on IPFS or something similar. Game players who own these plots of land will have to explore the land in some fashion by taking various actions, and at the end of each action the smart contract should reveal to the player (A) whether any hidden item was found as a result of the player's action and (B) if found, what exactly is the item and what are all it's characteristics.
Most information I have seen online about encrypted storage of data on IPFS has been about how the player/user would store his/her own data in an encrypted manner. But in my case, I want the data to be hidden from all players and only accessible to the smart contract. Actually, even the smart contract should not be able to get complete access to the data - the smart contract should only be able to answer the question of whether the player's action has resulted in the hidden items being found. This suggests that what I really need is a layer over IPFS with functions that only the smart contract can access that can use the player's series of actions and encrypted data (which may have been updated by prior actions) to answer questions regarding the discovery of hidden items.
I understand that Chainlink might have some elements of the solution to this, but unfortunately Chainlink costs would be prohibitive for anyone making repeated actions - something like 0.1-0.2 LINK per request, which comes out to about $2-$5.
Has anyone else run into a problem like this? How might I go about solving it?