ensingm2 / SteamMonsterGameScript

A Javascript automator for the 2015 Summer Steam Monster Minigame
78 stars 29 forks source link

Autobuy wastes a lot of money when you can't survive for 30 seconds and you're low on money #174

Open lolbifrons opened 9 years ago

lolbifrons commented 9 years ago

I joined in on a game around level 30k, and when autobuy ran out of money trying to keep me alive, it started buying the lower level armors until they were more expensive than the higher level ones. It doesn't seem to factor in the gain per cost like the script does for damage upgrades. I currently have 20 light armor, 18 heavy armor, 15 energy shields, 12 personal training, and 9 cybernetic enhancements, and I haven't bought anything manually. This makes all of them cost around 12-15 million each, even the ones that give negligible health.

ensingm2 commented 9 years ago

It does caculate what gives the most hp / cost.

As far as dying frequently enough that you need to buy that many health upgrades, see https://github.com/ensingm2/SteamMonsterGameScript/issues/175

ensingm2 commented 9 years ago

Should I close this, or do you believe there's still an issue?

lolbifrons commented 9 years ago

I haven't had the opportunity to run into the issue since I made the post, but if you haven't changed anything I guarantee there is still a problem. What it would do is highlight the right buy in black, but when it couldn't make the purchase due to lack of funds, it wouldn't wait, it would then attempt to buy a different armor it could afford, even if it was less cost efficient. It seems like the logic insists on buying something if you're dying even if you can't afford the best purchase (and even if the purchase won't actually raise your survivability more than negligibly) so it winds up buying Light Armor (and then the others) until it becomes as expensive as whatever you should actually be buying before it lets you save up enough to buy the latter thing.

ensingm2 commented 9 years ago

I could be wrong since I didn't write this code, but I'm pretty sure that's an attempt to keep you alive, since buying any armor resets your health.

That said though, it's not like dying is a massive punishment...

lolbifrons commented 9 years ago

That sounds like what it's doing. I suppose it's not strictly a bug, but it doesn't seem optimal at all.

ensingm2 commented 9 years ago

I've since lowered the default survivalTime from 30 to 10 seconds. This should vastly decrease the frequency you buy health upgrades (basically, only buy if it thinks you're going to die in the next 10s).

Let me know if you still run into issues buying too many hp items. So far I'm testing on a new game (lvl 21 with only 1 light armor purchased), but I see it being a bigger issue on later levels.

Alternatively, in the settings you can decrease this further, to 0 in able to disable automatic health upgrades completely. This setting saves on refresh.