Алгоритмы, лежащие в основе генерации цен на товары
Цены и доступность рыночных товаров, отображаемых на экране покупки грузов, рассчитываются с помощью нескольких формул, которые берут базовую стоимость каждого товара, смешивают её с парой экономических переменных и добавляют немного случайного поведения. В результате получается основа торговой системы, где умелые торговцы могут заработать состояние (в то время как остальные не могут получить даже небольшой доход).
Как рассчитываются эти цифры? Давайте начнем с формулы для цен, а затем перейдем к доступности.
Формула расчёта
Формула для цены товара price = (base_price + (random AND mask) + economy * economic_factor) * 4
Полученная цена в 10 раз больше отображаемой цены, поэтому мы можем показать её с одним десятичным знаком. Отдельные элементы в вычислении следующие:
- Базовая цена товара (base_price) находится в в таблице рыночных цен, так что для еды она равна 19, для текстиля – 20, для наркотиков – 235 и так далее.
- Каждый раз при прибытии в новую систему генерируется случайное число, это число обозначено как "random" в вышеприведенной формуле.
- Маска товара (mask) находится в таблице рыночных цен, так что для еды она равна &01, для текстиля – &03, для наркотиков – &78 и так далее.
Чем больше установленных битов в этой маске и чем выше их позиция в этом байте, тем больше колебания цены для этого товара, так как случайное число пересекается с маской. Таким образом, цены на наркотики будут сильно варьироваться, в то время как цены на еду и текстиль будут относительно стабильными.
- Экономика системы задается 3-битным значением от 0 до 7. А вот диапазон значений:
0 = Богатая промышленная
1 = Средняя промышленная
2 = Бедная промышленная
3 = В основном промышленная
4 = В основном сельскохозяйственная
5 = Богатая сельскохозяйственная
6 = Средняя сельскохозяйственная
7 = Бедная сельскохозяйственная
- Экономический фактор (economic_factor) хранится в таблице рыночных цен по адресу, для еды он равен -2, для текстиля – -1, для наркотиков – +8 и так далее. Отрицательные факторы показывают товары, которые, как правило, дешевле в сельскохозяйственных экономиках, но ближе к средним ценам в богатых промышленных, в то время как положительные факторы означают, что товары дороже в бедных сельскохозяйственных системах, чем в богатых промышленных. Например, еда дешевле в бедных сельскохозяйственных системах, а наркотики очень дорогие, и наоборот, в богатых промышленных системах наркотики ближе к средней цене, а еда дороже.
Доступность товаров на рынке
Доступность каждого товара также рассчитывается с помощью формулы.
quantity = (base_quantity + (random AND mask) - economy * economic_factor)
Если результат вышеупомянутого вычисления меньше 0, то доступное количество устанавливается равным 0. Полученная доступность сохраняется в таблице AVL.