This post will attempt to go over the upgrade system as I have planned it out over the past months that I've been on the team.
In the editor, the player has 3 choice:
1) He can right click on an organelle and remove it.
2) He can left click on the organelle and move it to any part of the organism for a small price
3) He can double-click on the organelle and bring up the upgrade panel.
If the player hovers over an organelle for more than 3 seconds, he brings up the following window which features the aforementioned 3 options as well as some stats.
I used some random things I made up, but later we can fill it up with actually useful stats (if you're wondering free radicals slowly deplete the health of your cell).
Clicking on the upgrade button opens the following window:
The red star is your current location on the "map". You press the purple buttons (circles) to move the cursor closer to their direction on the grid. If a point cannot move in the specified direction by a parallel grid line (in other words if it's on the edge), it moves along the diagonal of one grid cell to get closer to the button you pressed. To calculate the stats, the game will then find the component of the vector leading from the origin to the cursor that is parallel to the vector leading from the origin to the stats button.
I have thought about it and in my opinion this is a flexible and pretty good approach to upgrade organelles. In the above example, you have 4 different parameters (2 pairs), but this method also works for organelles that have two parameters (one pair), 3 parameters (one pair and some other parameter, like efficiency). Having a UI like this has two great features:
For one, you can upgrade a trait making it progressively better. This mimics evolution where over time traits get better and better (flagella started out as ion pumps and were really bad at first at moving the cell; mitochondria had a very low surface area—no folds—when they were first assimilated and had a very low efficiency; gills started out as ion exchange membranes with a low surface area).
Secondly, this allows for an exchange mechanism that @tjwhale wanted so much Obviously, you cannot simultaneously make a flagellum longer and shorter, but it offers for more subtle differences. You cannot make a very long and thin flagellum, you have to strike a good balance between these two traits, depending on your lifestyle (I just pulled this comparison out of my head). But let's say you want to at the same time be able to make a thick and long flagellum (you are just against short and long flagella because they break off or something), you could make a crazy shape like below:
Although we should keep these shapes more or less primitive e.g. triangle, rhombus, square, line.