import pandas as pd
from itertools import product
def floor_exp(cost, prob, floor):
result = sum((cost * i) * (1-prob)**(i-1) * prob for i in range(1, floor))
result += (cost * floor) * (1-prob)**(floor-1)
result = round(result)
return result
level_dict = {
150: {
'rare': 9750000,
'epic': 27300000,
'unique': 66300000,
'legend': 78000000
},
160: {
'rare': 10375000,
'epic': 29050000,
'unique': 70550000,
'legend': 78000000
},
200: {
'rare': 11000000,
'epic': 30800000,
'unique': 74800000,
'legend': 88000000
},
250: {
'rare': 12250000,
'epic': 34300000,
'unique': 83300000,
'legend': 98000000
}
}
levels = (150, 160, 200, 250)
stages = ('rare', 'epic', 'unique')
probs = dict(zip(
stages,
(0.023810, 0.009804, 0.007)
))
floors = dict(zip(
stages,
(62, 152, 214)
))
data = []
for level in levels:
result = [f'{floor_exp(level_dict[level][stage], probs[stage], floors[stage]):13,}'
for stage in stages]
data.append([level, *result])
data = pd.DataFrame(data, columns=['level', *stages])