Arrays always seem like good solutions for inventory. Or could use an instance variable with tokenAt/tokeCount. But lets do an example with an array.
Make an array, lets call it arrayInventory.
At the start of the layout sounds like you will want to add Punch/Fist to the array as they will always have that. Then you will want to set the size of the array to 1 x 1 x 1, as you only have one item in the inventory now. Don't skip this step, it is important.
Then when the character picks up an item you can push the item to the back of the array. (note: this will make the size 2 x 1 x 1).
If they lose an item then DELETE the item from the array, which will decrease the size back to 1 x 1 x 1.
Then you can have a variable to keep track of current selection. Lets call it InvSel for this example.
On change inventory button press:
Add 1 to InvSel
If InvSel > arrayInventory.width - 1 Then InvSel set to 0 (remember Arrays are zero based index)
Set current weapon to inventoryArray.At(InvSel)
Can change the first two lines to Set InvSel to InvSel > arrayInventory.width - 1 ? 0 : InvSel + 1
It may sound like a lot but just follow the steps and look up info/reference on arrays as you go and it will be easier than you think.