Goonstation 13 - Modules - TypesVar Details - Proc Details

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

flavor_descOptional but recommended flavor text to accompany the contract
hide_item_payoutsIs set to true to prevent any included item rewarders from being shown on contract
item_rewardersOptional list of item rewarder datums; their descriptions will be shown on contract unless flagged otherwise
nameTitle of the contract as used by the requisitions clearinghouse seen in the QM supply computer
payoutA 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
pinnedTracks 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_entriesList of contract entry datums; sent cargo will be passed into these for evaluation
req_classClass of the requisition contract, defaulting to misc (0); aid requisitions are urgent and will not wait for you
req_codeRequisition code used for standard contracts; is automatically generated if not specified, but can be manually set if desired
requis_descMandatory descriptive text that lists contract requirements; automatically populated from the list of rc_entries
weightContract's roll weight; dictates frequency of market appearance, or probability of selection for special order event. Can be left default

Procs

requisifyCalled 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

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.