Registers a shock to a parameter value. Associated with a value function, which shocks the variable, and a timer function, which determines when and how often to execute the value function.
Parameters
name — str, required
A unique name for the shock, to be displayed in the GUI beside its checkbox.
param — str|tuple, required
A parameter identification string or tuple. A string value indicates a global parameter. Per-good parameters can be indicated with a three-item tuple,
('paramName', 'good', 'goodName')
. A per-breed parameter can be indicated with a three- or four-item tuple,('paramName', 'breed', 'breedName', 'primitive')
, with the last element optional if there is only one primitive.param
can also be set toNone
, in which casevalFunc
behaves somewhat differently. See below.valFunc — func, required
A function that returns a new value for the parameter.
valFunc
takes three arguments: the name of the variable being shocked, the parameter type (None
for global parameters,'breed'
or'good'
for per-breed and per-good parameters, respectively), and (for per-breed or per-good parameters) the breed or the good in question. Ifvar is None
, however,valFunc
takes one argument, the model object. This can be useful for more complex shocks that do not correspond to a particular parameter.timerFunc — func(int)|str, required
A function that takes the current model time and returns a
bool
, indicating whether to runvalFunc
that period or not.timerFunc
can also be set to the string'button'
, in which case a button will be drawn in the control panel that runsvalFunc
when the button is pressed.active — bool, optional
Whether the shock is active by default when the control panel launches. This can be toggled on and off in the control panel later.
Default value: True
desc — str, optional
A long description to display as a tooltip. Note that tooltips require PMW when using the Tkinter frontend.
Default value: None