Revolutionary-Games / Thrive

The main repository for the development of the evolution game Thrive.
https://revolutionarygamesstudio.com/
Other
2.71k stars 490 forks source link

Multicellular edits of multiple cells can still result in MP being incorrectly refunded #5010

Open hhyyrylainen opened 3 months ago

hhyyrylainen commented 3 months ago

https://community.revolutionarygamesstudio.com/t/exploit-in-early-multicelluar-stage/7409

To replicate it yourself: In the early multicelluar stage, add any parts of your choosing to your cell, and then duplicate the cell. Next, go back to your modified stem cell and refund all the added parts. Delete the cell and go to the duplicate stem cell. Now, your previous modifications will still be there, and you can add more to it with your refunded mutation points. Rinse and repeat.

Avery-Brinkman commented 3 months ago

I had a couple ideas for this:

Do any of these sound reasonable? I like the last one the most, but I'm not familiar enough with the code to judge how difficult it'd be to do.

hhyyrylainen commented 3 months ago

I would personally approach this by preventing action combine for add organelle-delete organelle action pair if there is a cell duplication action that affects the same cell that organelle is for. That way everything should work the same as before but the MP is not incorrectly refunded.

It would be pretty complicated to then correctly refund the MP if the organelle was deleted from all duplicated copies, so I would just leave that out. So if someone messed around with this they'd lose MP if they didn't undo changes all the way to the cell duplication action, but at least it shouldn't be possible to get free MP this way.