When I played adventures in the past, it always bothered me that I may have forgotten to take something in the beginning of the game that is essential later.
-
I wanted to be fair in my story and would like to give the player a hint that not all essential things were taken yet. That was easy. So before leaving a place, I checked if the player had three things and if not, warned the player (only once, they can leave anyway).
-
Inspired by @Zed 's answer, I wanted to make it more difficult for the player to take things by using the
carrying capacity. I imagined the the player wears something with pockets, and also has his hands to carry stuff. I also managed to implement this, by modelling pockets:The pockets are nightwear-pockets. The pockets are part of the pyjamas. The player wears pyjamas.
Now it got complicated, because I cannot foresee if the player will put the essential things in his pockets or just take them (players need to do that, because I have three essential things, and I limited the carrying capacity of the player to two).
So my idea was to implement two functions:
- One that goes through the belongings of the player (worn or carried) and adds all things to a list
possessions. This list is supposed to be a flat inventory, omitting containers, but adding what’s in them. - One that checks if all items in the list of
essentialscan be found in the list ofpossessions.
My problem is the first one, because the pockets are part of the pyjamas. Is there a way to check if a worn thing or a carried thing has parts or is a container?
I might use only one decide on function (phrase), because I had troubles passing a list to a To phrase. When using it in my condition, it looks somewhat like this:
If { thing1, thing2, thing3 } is taken:
