I know, it looks like a mess because it is... I'm struggling to create an inventory system.
What I want to do is:
1. User finds weapons or items, grab it. It's stored, but not equiped.
2. He/she select between those items, and decide if the character will equip, drop it, etc.
This is what I have up to now.
In a startup passage:
{(set:
$weapons to (a:),
$max_weapons to 12
)
<!-- some weapon -->
(set: $iron_knife to (datamap:
"name","Iron Knife",
"desc","A random iron knife",
"slot","rh")) <!-- right hand -->
<!-- creates a link -->
(set: $i_iron_knife to "(link-reveal: 'Iron Knife')[
(if: $max_weapons is $weapons's length)[NO SPACE, SORRY]
(else:)[
(set: $weapons to it + (a: $iron_knife))
]
]")
With this, I can use something like "
Hey, you have found a weird $i_iron_knife, maybe it's a good idea to take it" anywhere. The problem is when I use something like this to retrieve data:
[code]Slot 1:{
(set: $slot1_name to $weapons's 1st's name)
(set: $slot1_desc to $weapons's 1st's desc)
(set: $slot1_slot to $weapons's 1st's slot)
}
[/code]
It works, but if I save and load the game, the "$weapons's 1st's name" and so on became invalid, because the datamap works like an array. "
You can only access position strings/numbers ('4th', 'last', '2ndlast', (2), etc.) and 'length' of an array, not the string "name"."
Is it an expected behavior? Or am I doing something wrong?