Change the printed name of shirts

I am attempting to make 25 of the same type of objects. so i did this.

[code]After opening SH1 Door to Your bedroom for the first time:
change the printed name of shirt 0000000001 to “dirty gray shirt”.

shirt 0000000001 is a kind of dirty gray shirt. shirt 0000000002 is a kind of dirty gray shirt. shirt 0000000003 is a kind of dirty gray shirt. shirt 0000000004 is a kind of dirty gray shirt. shirt 0000000005 is a kind of dirty gray shirt. shirt 0000000006 is a kind of dirty gray shirt. shirt 0000000007 is a kind of dirty gray shirt. shirt 0000000008 is a kind of dirty gray shirt. shirt 0000000009 is a kind of dirty gray shirt. shirt 0000000010 is a kind of dirty gray shirt. shirt 0000000011 is a kind of dirty gray shirt. shirt 0000000012 is a kind of dirty gray shirt. shirt 0000000013 is a kind of dirty gray shirt. shirt 0000000014 is a kind of dirty gray shirt. shirt 0000000015 is a kind of dirty gray shirt. shirt 0000000016 is a kind of dirty gray shirt. shirt 0000000017 is a kind of dirty gray shirt. shirt 0000000018 is a kind of dirty gray shirt. shirt 0000000019 is a kind of dirty gray shirt. shirt 0000000020 is a kind of dirty gray shirt. shirt 0000000021 is a kind of dirty gray shirt. shirt 0000000022 is a kind of dirty gray shirt. shirt 0000000023 is a kind of dirty gray shirt. shirt 0000000024 is a kind of dirty gray shirt. shirt 0000000025 is a kind of dirty gray shirt.
[/code]
but for some reason without adding the “kind of” it will not allow me to wear the shirt. but with the text present it gives me this error:

In the sentence ‘change the printed name of shirt 0000000001 to “dirty gray shirt”’ , it looks as if you intend ‘printed name of shirt 0000000001’ to be a property, but ‘a shirt 0000000001’ is not specific enough about who or what the owner is.

Sometimes this mistake is made because Inform mostly doesn’t understand the English language habit of referring to something indefinite by a common noun - for instance, writing ‘change the carrying capacity of the container to 10’ throws Inform because it doesn’t understand that ‘the container’ means one which has been discussed recently.

See the manual: 4.8 > New value properties

I was trying to match one of these phrases:

  1. change (printed name of shirt 0000000001 - object) to (“dirty gray shirt” - property)

  2. change (printed name of shirt 0000000001 - object) to (“dirty gray shirt” - enumerated value)

  3. change (printed name of shirt 0000000001 - a stored value) to (“dirty gray shirt” - value)

This was what I found out:

printed name of shirt 0000000001 = a property whose value is a text, holding a text

To make multiples of the same thing, you can set them to be the same kind of thing.

So to make 25 shirts, you can say:

A shirt is a kind of thing. The plural of shirt is shirts. 25 shirts are here.

And then you can set your shirts to have all kinds of default values, by saying things like:

A shirt is a kind of thing. The plural of shirt is shirts. A shirt is usually wearable. The description of a shirt is usually "A stylish shirt in your favorite shade of green."

And all of your shirts will be wearable and have that description.

But if you’re making 25 different shirts, you’d probably be better off with a table, and defining all of the shirts through that. Example 272, Introduction to Juggling, in the Inform Recipe Book is a good example of that.

awesome thank you for the very quick reply. Also, by doing it that way will i be able to put shirts in different rooms as well?

Yes you will. If you make your shirts via table, they’ll be like any other object. So you could say, ‘The dirty grey shirt is in the kitchen.’ or ‘The blue shirt is in your bedroom.’, assuming that those shirts are in the table (and that those rooms exist).

A shirt is a kind of thing. The plural of shirt is shirts. Some shirts are defined by the Table of Shirtness.

Table of Shirtness
shirt	description
a blue shirt	"This shirt is blue."
a grey shirt	"This shirt is grey."

Foo is a room. Bar is east of Foo.

A blue shirt is in Foo. A grey shirt is in Bar.

perfect thank you very much

Absolutely. You could even automate the descriptions, like so:

[code]Tint is a kind of value. The tints are maroon, teal, aquamarine, burgundy, and off-white.
Distinction is a kind of value. The distinctions are stretchy, rough, soft, curiously moist, and hideous.

A shirt is a kind of thing. The description is “This is a [item described].”
A shirt has a tint. Understand the tint property as describing the shirt.
A shirt has a distinction. Understand the distinction property as describing the shirt.

For printing the name of a shirt: say “[distinction] [tint] shirt”.

Home is a room. One rough maroon shirt is here. One hideous off-white shirt is here.[/code]

Presumably you could also include the location of the t-shirts in the table?

No – I’ve reported it as a bug.

A work-around to get the effect you want:

A shirt is a kind of thing. Some shirts are defined by the Table of Shirtness.
A shirt has an object called the init-location.

When play begins:
	repeat with S running through shirts:
		now S is in the init-location of S.

Table of Shirtness
shirt	description	init-location
a blue shirt	"This shirt is blue."	Kitchen
a grey shirt	"This shirt is grey."	Bathroom