A game that is late but well made is better than a game that is quick but badly made.
I don't think quick is the issue here - The code gets ever more unmaintainable and unexpandable because everything is duplicated until nothing can be extended anymore and the author burns out. I hadn't really looked at the code enough when I posted the first time. its way worse than I thought. The reason why you see more bugs is that the code probably has reached a point where it cannot be extended anymore without changing even simple things is that each thing needs to be changed in a hundreds near identical but sometime slightly different places.
for instance each NPC has the same code just copied and the used variables are changed with a new prefix.
Stuff like Text strings and everything are also duplicated to a degree of eldritch insanity. Not only has each character its own cup-sizes (not cup-size SIZES like a list of "AAA,AA,A,B...") but also each possible select-able racial variation a character has its own cup-sizes. Same goes for Names. I know that that way you can have different weightings but there are ways to do this easier by far.
You can make Husks in the game thus generating an unique NPC. This is not something that is done dynamical. Each is coded in. You can have Husks all the way from $husk1 up to $husk50. There are 7 racial variations. That is 350 times just for the Husks that Tit sizes are defined. This is not the only variable like that for instance each race has male and female variations and each has first and last names (yes male and female last names are selected separately and re-defined for each husk for each "race").
At the same time the code is commented and ordered in places in the way I imagine you would arrange far too many deck chairs on the promenade of a sinking ocean-liner.
MSMRZZRS I want to give a few Hints on how to fix this mess but I fear I can't be too brief about it because the you seem to be missing even the programming concepts behind them thus can't apply them effectively. But I also don't want to spend all Sunday on looking up the specific sugarcube syntax and testing the code before posting the examples here. So this ain't for direct copy and pasting:
There are only a few concepts you are missing that has gotten your code into this mess. As i see them these are:
* What are Arrays (and Objects)
* What is a Loop
* How can I format numbers for display so they don't look like Ass.0000000012
First Arrays are nice - they let you put more than one thing in a variable. Like a String. For instance :
set $cupSizes to ['AA', 'A','B','C','D']
This could be defined once globally. You can access each size by referencing it like this:
$cupSizes[1] The value this returns is 'A' (Arrays start at 0 generally).
So if you have say 50 Huskies that all have a cup-size what do you do? You use a Loop - A "for" loop is especially useful here because it gives you a counter $variable you can use. You can even give them names at the same time.
set $allMyHuskies to 50
set $huskies to []
<<for _i to 0; _i lt $allMyHuskies; _i++>>
<<$huskies[_i].name = $names.random()>>
<<$huskies[_i].cupSize = $cupSizes.random()>>
<</for>>
I am using an Array for the huskies here as well but its not an Array of strings like the cupSizes is but an Array of Objects - an Object is like a collection of other variables you reference by name under it. That way you can tie a lot of different types values together in one neat bundle.
The last concept is functions to transform numbers easily. You use widely use a decimal scale to describe stats and instead of just using a numeric variable you transform for display you use unwieldy lists of values you select from.
Normally you would just use a twice as big variable internally then divide by 2 and limit the decimal places to 1 for display by using ".tofixed(1)" on it. This approach gets you output like: 1.0 1.5 2.0 2.5 3.0 and so on without the need to laboriously defining each value manually for a list. This would definitively be good for the Player stats that frequently show to many decimals.
Another way one could use is to abuse an Array and the build in .random function it has - just define your list in an array ONCE - then just reference it like this: << $husky[_i].dickSize = $numberlist.random(1,16)>>
Anyway I have spend FAR too much time on this and I hope you lean something and get your game into a state were you can add onto it again without introducing more and more bugs.