Bug - Fixed Papier-mâché trophy piñata making leads to minor inventory desync

PsyMar

Member
A papier-mâché trophy piñata is made by using a papier-mâché bowl, but you must also have 2 papier-mâché handles, a papier-mâché plaque, and a papier-mâché base in your inventory, which are consumed when using the bowl. Mafia seems to only think the bowl gets consumed, as it thought I still had 2 handles after I made the trophy (I failed to check whether it thought I had the plaque or base before typing "refresh inv", sorry!)

Proper behavior should be, when using a papier-mâché bowl, only consume it if you have the other required parts, and if you do, remove the other required parts from inventory.

EDIT: This was in r14700.

EDIT: Summary of steps to reproduce bug:
acquire 277 rad libs (fewer may be needed with a warbear oven)
make them into papier-mâché globs by cooking with soda water
multi-use 23, 37, 37 (yes again), 69, and 111 papier-mâché globs
use the papier-mâché bowl
check your inventory in mafia for papier-mâché stuff that shouldn't be there
 
Last edited:

Veracity

Developer
Staff member
How did you "use the papier-mache-bowl"?

The trophy pinata is a "SUSE" creation. Which is to say, you "create" something by "using" a single item - although multiple other items might be consumed in making it. Here it is in concoctions.txt:

Code:
papier-mâché trophy piñata	SUSE	papier-mâché bowl	papier-mâché plaque	papier-mâché handle (2)	papier-mâché base
Note that it lists all of the ingredients. Threfore, I expect that if you use the Item Manager or the "create" command to make it, all the ingredients would be accounted for. I decided to test with a simpler SUSE concoction with several ingredients.

Code:
Jolly Roger charrrm bracelet	SUSE	Jolly Roger charrrm	charrrm bracelet

> inv charrrm

Jolly Roger charrrm bracelet (32)

> use 3 Jolly Roger charrrm bracelet

Using Jolly Roger charrrm bracelet (1 of 3)...
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm
Using Jolly Roger charrrm bracelet (2 of 3)...
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm
Using Jolly Roger charrrm bracelet (3 of 3)...
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm
Finished using 3 Jolly Roger charrrm bracelet.

> inv charrrm

charrrm bracelet (3)
Jolly Roger charrrm (3)
Jolly Roger charrrm bracelet (29)

> create 3 Jolly Roger charrrm bracelet

Verifying ingredients for Jolly Roger charrrm bracelet (3)...
Creating Jolly Roger charrrm bracelet (1 of 3)...
You acquire an item: Jolly Roger charrrm bracelet
Successfully created Jolly Roger charrrm bracelet (1)
You acquire an item: Jolly Roger charrrm bracelet
Successfully created Jolly Roger charrrm bracelet (1)
You acquire an item: Jolly Roger charrrm bracelet
Successfully created Jolly Roger charrrm bracelet (1)
Creating Jolly Roger charrrm bracelet (2 of 3)...
Creating Jolly Roger charrrm bracelet (3 of 3)...
Requests complete.

> inv charrrm

Jolly Roger charrrm bracelet (32)
And the session log for the above:

Code:
Use 1 Jolly Roger charrrm bracelet
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm

Use 1 Jolly Roger charrrm bracelet
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm

Use 1 Jolly Roger charrrm bracelet
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm

Use 1 Jolly Roger charrrm + 1 charrrm bracelet
You acquire an item: Jolly Roger charrrm bracelet

Use 1 Jolly Roger charrrm + 1 charrrm bracelet
You acquire an item: Jolly Roger charrrm bracelet

Use 1 Jolly Roger charrrm + 1 charrrm bracelet
You acquire an item: Jolly Roger charrrm bracelet
You are obviously doing something different.
 

Veracity

Developer
Staff member
I just tried creation using a "use" command.

> inv charrrm

Jolly Roger charrrm bracelet (32)

> use Jolly Roger charrrm bracelet

Using 1 Jolly Roger charrrm bracelet...
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm
Finished using 1 Jolly Roger charrrm bracelet.

> use Jolly Roger charrrm

Using 1 Jolly Roger charrrm...
You acquire an item: Jolly Roger charrrm bracelet
Finished using 1 Jolly Roger charrrm.

> inv charrrm

Jolly Roger charrrm bracelet (32)
Looks good. The session log:

Code:
Use 1 Jolly Roger charrrm bracelet
You acquire an item: charrrm bracelet
You acquire an item: Jolly Roger charrrm

Use 1 Jolly Roger charrrm + 1 charrrm bracelet
You acquire an item: Jolly Roger charrrm bracelet
Looks good.

I definitely need more information about exactly what you are doing.
 
I can confirm the original report. Used gCLI to acquire the rad libs, then item manager / cookable / create item to create the globs, item manager / recent / use item to multi-use the globs (23, 37, 37, 69, 111), then ... / use item again to use the bowl. Both item manager / general and .. / recent show all papier-mache parts still present, including the bowl, and the trophy piñata. [hey - spell check knows piñata - !] Item manager / refresh corrects this, only shows the piñata.
 
Urgh - sorry, it sounded like you just needed the actions performed.

Excerpt from session log follows. Near the end I put the handles in the closet to verify non-creation behavior, then pulled them out and created the piñata.

Code:
Cook 277 Rad Lib + 277 soda water
You acquire papier-mâché glob (277)
Crafting used 277 each of soda water and Rad Lib

Use 23 papier-mâché glob
You acquire an item: papier-mâché plaque

Use 37 papier-mâché glob
You acquire an item: papier-mâché handle

Use 37 papier-mâché glob
You acquire an item: papier-mâché handle

Use 69 papier-mâché glob
You acquire an item: papier-mâché base

Use 111 papier-mâché glob
You acquire an item: papier-mâché bowl

add to closet: 2 papier-mâché handle

use 1 papier-mâché bowl

take from closet: 2 papier-mâché handle
You acquire papier-mâché handle (2)

use 1 papier-mâché bowl
You acquire an item: papier-mâché trophy piñata
 

Veracity

Developer
Staff member
Thanks. We were looking up creations via "pretty name" rather than actual "data name" - with all those HTML entities.

Revision 14705 looks up single use concoctions using item ID.

Here is my session log. I had already purchased 277 Rad Libs. I went to the Item Manager and told it make the trophy. It would have been more efficient if I had acquired all the soda water first and cooked in one go, as you did, but this is how recursive creation works if all the ingredients are not already in inventory...

Code:
buy 111 soda water for 70 each from The General Store
You acquire soda water (111)
You spent 7,770 Meat

Cook 111 Rad Lib + 111 soda water
You acquire papier-mâché glob (111)
Crafting used 111 each of soda water and Rad Lib

Use 111 papier-mâché glob
You acquire an item: papier-mâché bowl

buy 69 soda water for 70 each from The General Store
You acquire soda water (69)
You spent 4,830 Meat

Cook 69 Rad Lib + 69 soda water
You acquire papier-mâché glob (69)
Crafting used 69 each of soda water and Rad Lib

Use 69 papier-mâché glob
You acquire an item: papier-mâché base

buy 74 soda water for 70 each from The General Store
You acquire soda water (74)
You spent 5,180 Meat

Cook 74 Rad Lib + 74 soda water
You acquire papier-mâché glob (74)
Crafting used 74 each of soda water and Rad Lib

Use 37 papier-mâché glob
You acquire an item: papier-mâché handle

Use 37 papier-mâché glob
You acquire an item: papier-mâché handle

buy 23 soda water for 70 each from The General Store
You acquire soda water (23)
You spent 1,610 Meat

Cook 23 Rad Lib + 23 soda water
You acquire papier-mâché glob (23)
Crafting used 23 each of soda water and Rad Lib

Use 23 papier-mâché glob
You acquire an item: papier-mâché plaque

Use 1 papier-mâché bowl + 1 papier-mâché plaque + 2 papier-mâché handle + 1 papier-mâché base
You acquire an item: papier-mâché trophy piñata
 
Cool.

I didn't even think of creating the trophy directly, I was just following along with the OP's method. More efficient for the automation, but less for the person running it.
 
Top