here's (a rare, lol) mostly non-code post for you, hehe:
within the GUI~Editor, there's two types of means~ways of making your game:
.1. initial creation ('adding'~'setting') before the game begins:
Add -> Object, Exit, Function, Verb, Command, Attribute, etc
example of adding~creating~intially_setting of Attributes:
'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below)
(Object Name: player)
Attribute Name: strength
Attribute Type: int (integer)
Attribute Value: 100
.2. scripting (ACTION~EVENTS: creating~adding, setting, re-setting, removing, deleting, changing, altering, etc. At the beginning of the game and~or during the game):
(Object's Verb~Command~Function~Turnscript~Timer~etc) -> run as script -> add a~new script (the circle buttons)
example of scripting:
'strength potion' Object -> 'Verb' Tab -> add -> Name: consume -> (see below)
add new script -> variables -> 'set a variable or attribute' Script -> set variable player.strength = [expression] player.strength + 2
add a script -> output -> 'print a message' Script -> print message [expression] "You consume the strength potion, increasing your strength by 2, having now {player.strength} strength."
Lists and Dictionaries are a Type of Attribute ~ Attribute Type:
Attribute Types ~ Types of Attributes:
String Attributes
Boolean Attributes
Integer Attributes
Double Attributes
Object Attributes
Script Attributes
String List Attributes
Object List Attributes (this unfortunately doesn't exist in the GUI~Editor's 'add creation', so your only option is via the GUI~Editor's scripting or just doing~writing it in~as code)
String Dictionary Attributes
Object Dictionary Attributes
Script Dictinary Attributes
'Include Reference' Attributes (Libraries)
'Inherited' Attributes (Object Types)
so, for lists, examples:
adding~creation~initially_setting:
'player' Player Object -> 'Attributes' Tab -> Attributes -> Add -> (see below)
(Object Name: player)
Attribute Name: favorite_foods
Attribute Type: string list
Attribute Value: (add, repeat as needed for each Value): pizza, hamburger, ice cream, chocolate, pasta, candy
or, via scripting instead (example):
'hk' Object -> 'Verb' Tab -> Add -> Name: foods -> (see below)
[run as script] -> add new script -> variables -> 'set a variable or attribute' Script -> (see below)
set variable hk.favorite_foods = [expression] NewStringList ()
add a script -> variables -> 'add a value to a list' Script -> (see below)
add to list hk.favorite_foods [text] pizza
add a script -> variables -> 'add a value to a list' Script -> (see below)
add to list hk.favorite_foods [text] hamburger
etc etc etc
as for actually then doing stuff with the lists... that's a whole behemoth beast in itself... not for this post, lol.
resources:
http://docs.textadventures.co.uk/quest/guides/using_lists.html
http://docs.textadventures.co.uk/quest/functions/newstringlist.html
http://docs.textadventures.co.uk/quest/functions/string/split.html
http://docs.textadventures.co.uk/quest/scripts/list_add.html
http://docs.textadventures.co.uk/quest/scripts/list_remove.html
http://docs.textadventures.co.uk/quest/functions/listcount.html
http://docs.textadventures.co.uk/quest/functions/listcontains.html
etc etc etc