Добавлен нагрев

main
none 8 months ago
parent 864e7ed15b
commit c7987e6fd1

@ -73,9 +73,10 @@ def ll_find(ll, pat):
def calc(el, amount, main = False): def calc(el, amount, main = False):
global db, recipe global db, recipe
if main: if main:
recipe = [] #{} recipe = []
comps = db[el][2:] # Получаем составные comps = db[el][3:] # Получаем составные
heat = db[el][2]
out = db[el][0] #Количество на выходе out = db[el][0] #Количество на выходе
# Считаем количество частей # Считаем количество частей
@ -87,15 +88,12 @@ def calc(el, amount, main = False):
while out < parts: while out < parts:
# Предварительная часть # Предварительная часть
part = sround(amount/parts, parts) part = sround(amount/parts, parts)
#print(el, ': ',out,' < ', parts)
# Если итоговый объём <= входного объёма # Если итоговый объём <= входного объёма
if (parts+1)*part <= amount: if (parts+1)*part <= amount:
parts += 1 parts += 1
else: else:
break break
# parts = out
# Считаем 1 часть # Считаем 1 часть
part = sround(amount/parts, parts) part = sround(amount/parts, parts)
@ -103,43 +101,33 @@ def calc(el, amount, main = False):
for i in comps: for i in comps:
if i[0] in db: if i[0] in db:
lpart = calc(i[0], part*i[1]) lpart = calc(i[0], part*i[1])
# Если наша часть больше чем составная
if lpart < part:
part = lpart
# lpart - количество составного в итоге # lpart - количество составного в итоге
# 50/3, часть = 16, ИТОГ: 16*3=48 < # 50/3, часть = 16, ИТОГ: 16*3=48 <
try:
if lpart < part: if heat and not main:
print("LPART: ",lpart) recipe = [['heat']] + recipe
part = lpart if heat and main:
except: recipe.append(['heat'])
pass
# Перебираем элементарные вещества # Перебираем элементарные вещества
for i in comps: for i in comps:
if i[0] not in db: if i[0] not in db:
if i[0] == 'Плазма': if i[0] == 'Плазма':
#recipe[i[0]] = 1
# Проверяем есть ли уже плазма
#exist = False
#for chk in recipe:
# if chk[0] == 'Плазма':
# exist = True
# break
#if not exist:
if ll_find(recipe, 'Плазма') == None: if ll_find(recipe, 'Плазма') == None:
#recipe.append([i[0], 1])
recipe = [[i[0], 1]] + recipe recipe = [[i[0], 1]] + recipe
else: else:
#if i[0] not in recipe: if heat:
# recipe[i[0]] = part*i[1] recipe = [[i[0], part*i[1]]] + recipe
#else: else:
# recipe[i[0]] += part*i[1] recipe.append([i[0], part*i[1]])
recipe.append([i[0], part*i[1]])
# ЕСЛИ ЕСТЬ БАГИ ВЕРОЯТНО ЭТО ТУТ # ЕСЛИ ЕСТЬ БАГИ ВЕРОЯТНО ЭТО ТУТ
# Если нету плазмы - соединяем вещества # Если нету плазмы - соединяем вещества
if main: if main:
if ll_find(recipe, 'Плазма') == None: if ll_find(recipe, 'Плазма') == None and not heat:
print('START: ', recipe) print('START: ', recipe)
new_recipe = [] new_recipe = []
#for i in recipe: #for i in recipe:
@ -172,6 +160,8 @@ def calc(el, amount, main = False):
print('PART: ', part) print('PART: ', part)
return [recipe, out*part] return [recipe, out*part]
else: else:
print(recipe)
print(el)
print('PART: ', part) print('PART: ', part)
return part*parts return part*parts
@ -179,4 +169,6 @@ def calc(el, amount, main = False):
#print( calc("Бикаридин", 100, True)) #print( calc("Бикаридин", 100, True))
#print( calc("Диловен", 100, True)) #print( calc("Диловен", 100, True))
#print( calc("Эфедрин", 100, True)) #print( calc("Эфедрин", 100, True))
print( calc("Криоксадон", 100, True) ) #print( calc("Криоксадон", 100, True) )
#print( calc("Гидроксид", 100, True) )
#print( calc("Пунктураз", 100, True) )

@ -143,7 +143,11 @@ def update_output(reaction, amount):
# Форматирование для HTML # Форматирование для HTML
result = [] result = []
for i in comps: for i in comps:
result.append( html.Div(i[0] + ': ' + str(i[1]) if i[0] == 'heat':
result.append( html.Div('Нагреть!'
, style={'background-color': 'rgb(115, 62, 157)', 'color': '#ffffff', 'margin-top': 10, 'border-radius': 10, 'padding': 15, 'font-family': '"Source Sans Pro", sans-serif', 'font-size': '120%'}) )
else:
result.append( html.Div(i[0] + ': ' + str(i[1])
, style={'background-color': 'rgb(213, 193, 86)', 'color': '#ffffff', 'margin-top': 10, 'border-radius': 10, 'padding': 15, 'font-family': '"Source Sans Pro", sans-serif', 'font-size': '120%'}) ) , style={'background-color': 'rgb(213, 193, 86)', 'color': '#ffffff', 'margin-top': 10, 'border-radius': 10, 'padding': 15, 'font-family': '"Source Sans Pro", sans-serif', 'font-size': '120%'}) )
# Выходное вещество # Выходное вещество

Loading…
Cancel
Save