Iron ChIF: Pilot Episode (Pacian vs. Draconis, using Dialog)

(dont scan *) is a pacian-specific attribute assigned to the object

($ attracts $) defines “floating objects”, that is, items that can be in more than one place at a time (similar to the “found_in” property in inform).

you can assign these individually as he’s done here but, since dialog is all about lists and recursion, you can also assign them to ‘regions’

(room *(forest room $))  %% this sets up a new custom room attribute that inherits from the usual room attribute. 

#trees     %% this creates a movable scenery object
(name *) trees 
(plural *)
(descr *) You see towering oaks all around. 
((forest room $) attracts *) %% now the trees are in every forest room we create.

i would point out one advantage of inform6 in this respect. once you’ve “attracted” an object to something in dialog, you can’t make it disappear or “un-attract” it again. whereas, in inform you can simply zap the found_in property. it’s a small thing but occasionally useful.

EDIT:
actually, ignore this last part. i remembered that you can apply rules to an attract predicate which will let you apply and un-apply them.

(#livingRoom attracts #shagCarpet)
     (year is 1976)
9 Likes