Increase Maximum doesn’t work like that. It just multiplies the maximum, so if it’s already 0 it’ll stay zero.
Here is a way to make it so you can buy a “laser” but it will not fire unless you have a “crystal” for it. That is to say, each laser that you want to work, must have its own crystal. And each individual laser may have a different type of crystal if you want. There is one catch, in which the Laser cannot be sold directly, but must be removed by buying a Remove Laser outfit. I will describe this to work with 4 different types of crystals.
Weapons:
128 Beam A
129 Beam B
130 Beam C
131 Beam D
Outfits:
128 Crystal A
Is weapon 128
Availability: O134
OnPurchase: D134 G128 (note, this would just be D134, except for an engine bug)
OnSell: G134 D128 (similar note)
129 Crystal B
Is weapon 129
Availability: O134
OnPurchase: D134 G129
OnSell: G134 D129
130 Crystal C
Is weapon 130
Availability: O134
OnPurchase: D134 G130
OnSell: G134 D130
131 Crystal D
Is weapon 131
Availability: O134
OnPurchase: D134 G131
OnSell: G134 D131
132 Laser
Does nothing. Cannot be sold.
OnPurchase: G134
133 Remove Laser
Does nothing.
Availability: O132 & O134
OnPurchase: D132 D133 D134
134 Token 1
Does nothing. Invisible.
In essence, what we have done is create a new sort of “gun slot”, which is called a “laser” and allows “crystals” to be installed, using “tokens” to count them. You could also just dedicate real gun (or turret) slots to this purpose, if you don’t need them for something else. Then you could do away with all the bit parsing and extra outfits, and just make the Laser grant a gun slot, and the Crystals each occupy one.