Script Classes for Adventure Games/InvItem Class

From SCI Wiki
Jump to: navigation, search

Official SCI Documentation

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

Author: Jeff Stephenson

Date: 5 April 1988

 


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
cel

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.

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


 

Table of Contents

 

< Previous: The Timer Class Next: The Block Class >