2. A particular item can only grant Largesse once per week (fortnight? month?). Not a coder, but I'd imagine it would just need a field added to each unique item that shows the last time it granted Largesse and add one to it each day. Less than 7? No Largesse. >=7? Gives Largesse and resets the counter.
Better way--create a field for each item called LastLargesseGrant (or whatever) and have it store a DateTime stamp of the last time the Largesse was granted. No counter necessary--just whenever the person goes to do a grant, deny it if the time isn't expired, or allow it if it has (and update the field).