--<<< -- Class PerpetrateAction represents an action. The action has a name -- (e.g. @sleep), and a perpetrator, which is the object doing the action. class PerpetrateAction (ScriptAction) instance variables name callback perpetrator track end -- Method init simply assigns keyword arguments to instance variables. method init self {class PerpetrateAction} #rest args #key \ name:(@do) \ perpetrator: \ callback: (undefined) \ track:(1) -> ( apply nextMethod self args self.name := name self.callback := callback self.perpetrator := perpetrator self.track := track ) -->>>