Difference between revisions of "Script Classes for Adventure Games/InvItem Class"
(→script) |
|||
(6 intermediate revisions by the same user not shown) | |||
Line 4: | Line 4: | ||
Chapter: | Chapter: | ||
[[Script Classes for Adventure Games/Introduction|1]] | | [[Script Classes for Adventure Games/Introduction|1]] | | ||
− | [[Script Classes for Adventure Games/RootObj|2]] | | + | [[Script Classes for Adventure Games/RootObj Class|2]] | |
− | [[Script Classes for Adventure Games/Object|3]] | | + | [[Script Classes for Adventure Games/Object Class|3]] | |
− | [[Script Classes for Adventure Games/Collection|4]] | | + | [[Script Classes for Adventure Games/Collection Class|4]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Script Class|5]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Timer Class|6]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Feature Class|7]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/View Class|8]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/PicView Class|9]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Cycling Classes|10]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Motion Classes|11]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Avoider Class|12]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/Event Class|13]] | |
− | [[Script Classes for Adventure Games/ | + | [[Script Classes for Adventure Games/User Class|14]]<br /> |
− | + | [[Script Classes for Adventure Games/Game Class|15]] | | |
− | + | [[Script Classes for Adventure Games/Locale Class|16]] | | |
− | + | [[Script Classes for Adventure Games/Region Class|17]] | | |
− | + | [[Script Classes for Adventure Games/Room Class|18]] | | |
− | + | [[Script Classes for Adventure Games/Timer2 Class|19]] | | |
− | + | [[Script Classes for Adventure Games/InvItem Class|20]] | | |
− | + | [[Script Classes for Adventure Games/Block Class|21]] | | |
− | + | [[Script Classes for Adventure Games/Cage Class|22]] | | |
− | + | [[Script Classes for Adventure Games/Sound Class|23]] | | |
− | + | [[Script Classes for Adventure Games/StatusLine Class|24]] | | |
− | + | [[Script Classes for Adventure Games/File Class|25]] | | |
− | + | [[Script Classes for Adventure Games/Code Class|26]] | | |
− | + | [[Script Classes for Adventure Games/Global Variables|27]] | | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [[Script Classes for Adventure Games/Game| | ||
− | [[Script Classes for Adventure Games/Locale| | ||
− | [[Script Classes for Adventure Games/Region| | ||
− | [[Script Classes for Adventure Games/Room| | ||
− | [[Script Classes for Adventure Games/Timer2| | ||
− | |||
− | [[Script Classes for Adventure Games/InvItem| | ||
− | [[Script Classes for Adventure Games/Block| | ||
− | [[Script Classes for Adventure Games/Cage| | ||
− | [[Script Classes for Adventure Games/Sound| | ||
− | [[Script Classes for Adventure Games/StatusLine| | ||
− | [[Script Classes for Adventure Games/File| | ||
− | [[Script Classes for Adventure Games/Code| | ||
− | [[Script Classes for Adventure Games/Global Variables| | ||
[[Script Classes for Adventure Games/Index|Index]] | [[Script Classes for Adventure Games/Index|Index]] | ||
</div><br /> | </div><br /> | ||
Line 62: | Line 39: | ||
| | ||
− | + | ==<br /> The InvItem Class == | |
+ | |||
+ | InvItems are the items which ego can gather and use as he moves through the game. As described in the description of the Inventory class, they are generally referred to by their position in the Inventory list rather than by their object ID (which is not known in all modules). | ||
+ | |||
+ | {| | ||
+ | |width= "125"|In file:||invent.sc | ||
+ | |- | ||
+ | |Inherits from:||RootObj | ||
+ | |- | ||
+ | |Inherited by:||none | ||
+ | |} | ||
+ | |||
+ | ===<br /> Properties === | ||
+ | |||
+ | <blockquote> | ||
+ | ==== name ==== | ||
+ | <blockquote>The string which is the InvItem's name. This is what will be shown in the inventory window if you do an (inventory showSelf:ego) and ego has the item.</blockquote> | ||
+ | |||
+ | ==== said ==== | ||
+ | <blockquote>A said-string describing the way in which the User may refer to the item.</blockquote> | ||
+ | |||
+ | ==== description ==== | ||
+ | <blockquote>The description of the object to be displayed if the User clicks the mouse on the item's name in the inventory window.</blockquote> | ||
+ | |||
+ | ==== view <br /> loop <br /> cel ==== | ||
+ | <blockquote>The view, loop, and cel to be displayed for the item if the User clicks the mouse on the item's name in the inventory window.</blockquote> | ||
+ | |||
+ | ==== owner ==== | ||
+ | <blockquote>The current 'owner' of the item. This is either a room number (the item is in the room) or an object ID of an Ego (the Ego possesses the item).</blockquote> | ||
+ | |||
+ | ==== script ==== | ||
+ | <blockquote>The object ID of a Script for the item. This can be used to keep track of the state of a changeable item and to change the view, loop, cel, and description of the item. Thus, an electronic device might have the following script attached to it: | ||
+ | |||
+ | <blockquote> | ||
+ | <div class="CodeBlockHeader">Code:</div> | ||
+ | <syntaxhighlight lang="sci"> | ||
+ | (instance deviceScript of Script | ||
+ | (method (changeState newState) | ||
+ | (switch (= state newState) | ||
+ | (deviceOn | ||
+ | (client | ||
+ | description:"The device is on." | ||
+ | cel:0 | ||
+ | ) | ||
+ | ) | ||
+ | (deviceOff | ||
+ | (client | ||
+ | description:"The device is off." | ||
+ | cel:1 | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | ) | ||
+ | )</syntaxhighlight> | ||
+ | </blockquote> | ||
+ | |||
+ | Thus, in response to user input of 'turn device on', you can write | ||
+ | |||
+ | <blockquote><div class="CodeBlockHeader">Code:</div> | ||
+ | <syntaxhighlight lang="sci"> | ||
+ | ((inventory at:iDevice) changeState:deviceOn)</syntaxhighlight></blockquote> | ||
+ | </blockquote> | ||
+ | </blockquote> | ||
+ | |||
+ | ===<br /> Methods === | ||
+ | |||
+ | <blockquote> | ||
+ | ==== saidMe: ==== | ||
+ | <blockquote>Return TRUE if the user input referred to this item, FALSE otherwise.</blockquote> | ||
+ | |||
+ | ==== ownedBy: whom ==== | ||
+ | <blockquote>Return TRUE if the item is owned by whom (either a room number or an object ID), FALSE otherwise.</blockquote> | ||
+ | |||
+ | ==== moveTo: whom ==== | ||
+ | <blockquote>Set the item's owner to whom (either a room number of object ID).</blockquote> | ||
+ | |||
+ | ==== showSelf: ==== | ||
+ | <blockquote>Display the item's view, loop, cel, and description in a window.</blockquote> | ||
+ | |||
+ | ==== changeState: newState ==== | ||
+ | <blockquote>Send the changeState:newState message to the item's script.</blockquote> | ||
+ | </blockquote> | ||
| | ||
Line 75: | Line 133: | ||
| | ||
− | <span style="float: left">[[Script Classes for Adventure Games/TimeOut|< Previous: TimeOut]]</span> | + | <!-- <span style="float: left">[[Script Classes for Adventure Games/TimeOut|< Previous: TimeOut]]</span> --> |
− | <span style="float: right">[[Script Classes for Adventure Games/Block|Next: Block >]]</span> | + | <span style="float: left">[[Script Classes for Adventure Games/Timer2 Class|< Previous: The Timer Class]]</span> |
+ | <span style="float: right">[[Script Classes for Adventure Games/Block Class|Next: The Block Class >]]</span> | ||
| |
Latest revision as of 01:50, 11 December 2015
Chapter:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
Index
The InvItem Class
InvItems are the items which ego can gather and use as he moves through the game. As described in the description of the Inventory class, they are generally referred to by their position in the Inventory list rather than by their object ID (which is not known in all modules).
In file: | invent.sc |
Inherits from: | RootObj |
Inherited by: | none |
Properties
name
The string which is the InvItem's name. This is what will be shown in the inventory window if you do an (inventory showSelf:ego) and ego has the item.
said
A said-string describing the way in which the User may refer to the item.
description
The description of the object to be displayed if the User clicks the mouse on the item's name in the inventory window.
view
loop
celThe view, loop, and cel to be displayed for the item if the User clicks the mouse on the item's name in the inventory window.
owner
The current 'owner' of the item. This is either a room number (the item is in the room) or an object ID of an Ego (the Ego possesses the item).
script
The object ID of a Script for the item. This can be used to keep track of the state of a changeable item and to change the view, loop, cel, and description of the item. Thus, an electronic device might have the following script attached to it:
Code:(instance deviceScript of Script (method (changeState newState) (switch (= state newState) (deviceOn (client description:"The device is on." cel:0 ) ) (deviceOff (client description:"The device is off." cel:1 ) ) ) ) )Thus, in response to user input of 'turn device on', you can write
Code:((inventory at:iDevice) changeState:deviceOn)
Methods
saidMe:
Return TRUE if the user input referred to this item, FALSE otherwise.
ownedBy: whom
Return TRUE if the item is owned by whom (either a room number or an object ID), FALSE otherwise.
moveTo: whom
Set the item's owner to whom (either a room number of object ID).
showSelf:
Display the item's view, loop, cel, and description in a window.
changeState: newState
Send the changeState:newState message to the item's script.
- Notes
< Previous: The Timer Class Next: The Block Class >