Requisition Contract
The primary datum for requisitions contracts. Top level contains cargo handling data, payout data, item reward generators if present, and formatted descriptions for the QM requisitions menu.
Actual evaluation of contract entries occurs through requisition entries (/datum/rc_entry) contained within. The contents of containers are evaluated sequentially, using the rc_eval proc of each entry that hasn't been fulfilled yet at time of evaluation.
Fulfillment is managed internally within entries; the contract only cares about whether an item was needed, and whether the entry is satisfied. You can have any sort of evaluation you like within new types of contract entry, as long as you're feeding back those two pieces of information.
Contracts are divided by requisition class. Three market classes of requisition currently exist: Aid, Civilian and Scientific. Each market cycle, these requisitions are refreshed, with at least one requisition from each category being present after the refresh. These contract types have different requirements and sometimes an influence on what you can do with them. See individual files for more details. Special requisition contracts also exist, shipped directly as a hard copy. These obey notably different rules, as described in rc_special.dm.
Vars | |
count | determines payout multiplier |
---|---|
flavor_desc | Optional but recommended flavor text to accompany the contract |
hide_item_payouts | Is set to true to prevent any included item rewarders from being shown on contract |
item_rewarders | Optional list of item rewarder datums; their descriptions will be shown on contract unless flagged otherwise |
name | Title of the contract as used by the requisitions clearinghouse seen in the QM supply computer |
payout | A baseline amount of cash you'll be given for fulfilling the requisition; this is modified by entries The current thinking as of the time of writing this comment is for this to be 10 times some salary's wage, times an additional modifier based on difficulty |
pinned | Tracks whether contract is pinned; one contract at a time may be pinned, reserving it for QM and preventing it from leaving with market shift |
rc_entries | List of contract entry datums; sent cargo will be passed into these for evaluation |
req_class | Class of the requisition contract, defaulting to misc (0); aid requisitions are urgent and will not wait for you |
req_code | Requisition code used for standard contracts; is automatically generated if not specified, but can be manually set if desired |
requis_desc | Mandatory descriptive text that lists contract requirements; automatically populated from the list of rc_entries |
weight | Contract's roll weight; dictates frequency of market appearance, or probability of selection for special order event. Can be left default |
Procs | |
requisify | Called to tally a crate's contents, to evaluate whether they've fulfilled the contract. If only_evaluate is FALSE, the proc will actually consume relevant contents, and return a post-sale handling code appropriately. If only_evaluate is TRUE, the proc will simply index relevant contents, and return a textual summary of detected contract fulfillment. |
Var Details
count
determines payout multiplier
flavor_desc
Optional but recommended flavor text to accompany the contract
hide_item_payouts
Is set to true to prevent any included item rewarders from being shown on contract
item_rewarders
Optional list of item rewarder datums; their descriptions will be shown on contract unless flagged otherwise
name
Title of the contract as used by the requisitions clearinghouse seen in the QM supply computer
payout
A baseline amount of cash you'll be given for fulfilling the requisition; this is modified by entries The current thinking as of the time of writing this comment is for this to be 10 times some salary's wage, times an additional modifier based on difficulty
pinned
Tracks whether contract is pinned; one contract at a time may be pinned, reserving it for QM and preventing it from leaving with market shift
rc_entries
List of contract entry datums; sent cargo will be passed into these for evaluation
req_class
Class of the requisition contract, defaulting to misc (0); aid requisitions are urgent and will not wait for you
req_code
Requisition code used for standard contracts; is automatically generated if not specified, but can be manually set if desired
requis_desc
Mandatory descriptive text that lists contract requirements; automatically populated from the list of rc_entries
weight
Contract's roll weight; dictates frequency of market appearance, or probability of selection for special order event. Can be left default
Proc Details
requisify
Called to tally a crate's contents, to evaluate whether they've fulfilled the contract. If only_evaluate is FALSE, the proc will actually consume relevant contents, and return a post-sale handling code appropriately. If only_evaluate is TRUE, the proc will simply index relevant contents, and return a textual summary of detected contract fulfillment.