Skip to content

Conversation

@fenhl
Copy link
Collaborator

@fenhl fenhl commented May 16, 2025

This adds a new check when placing items where if the item is placed in a special deal location and that location's price is at or above the item's market price, the price is rerolled once and the lower of the two values is used.

The idea is to counterbalance the limited usefulness of refill special deals (due to being one-time purchases), and to help reduce rupee farming a bit. It's done on a random basis rather than always picking a price below market for the following reasons:

  • The occasional scam can be funny and for non-rupee refills sometimes even useful depending on item placements
  • To not affect balancing too much
  • Doing it this way makes it easier to follow the “Shopsanity Prices” setting

The “market price” of an item is defined as follows:

  • For rupees, the value of the rupee itself.
  • For refills that are also available as repeatable purchases in shops (or from business scrubs), the lowest available price.
  • Other items don't have defined market prices, so they're not affected by this change. This is both to avoid issues with logic and since finding consensus “market prices” for major items seems difficult.

Closes #1987.

Testing

This has not yet been tested. A good way to test this might be to use ootrstats to categorize item prices and compare the price distributions on Dev and this branch. See #2418 (comment).

@fenhl fenhl added Type: Enhancement New feature or request Component: Algorithm Search, Fill, Playthrough, etc Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested labels May 16, 2025
@fenhl

This comment was marked as resolved.

@fenhl fenhl added the Status: Waiting for Author Changes or response requested label Jul 17, 2025
@fenhl fenhl removed the Status: Waiting for Author Changes or response requested label Aug 25, 2025
@fenhl
Copy link
Collaborator Author

fenhl commented Oct 4, 2025

Tested this and the average price across all special deals goes from 98.527 rupees to 89.846 on the default 0–300 betavariate price distribution (sample size: 16384 seeds), so I'd say that confirms it's working.

@fenhl fenhl removed the Status: Needs Testing Probably should be tested label Oct 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: Algorithm Search, Fill, Playthrough, etc Status: Needs Review Someone should be looking at it Type: Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Setting "No very obvious scams" in Shopsanity

1 participant