-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathThirdFormula_old1.js
156 lines (132 loc) · 9.33 KB
/
ThirdFormula_old1.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
// Функция для выполнения обсчёта
function executeCalculation() {
// Получаем данные новых убитых
const newKilled1 = parseInt(document.getElementById('death1Input').value) || 0;
const newKilled2 = parseInt(document.getElementById('death2Input').value) || 0;
// Получаем данные последних убитых
const lastKilled1 = parseInt(document.getElementById('lastInput1').value) || 0;
const lastKilled2 = parseInt(document.getElementById('lastInput2').value) || 0;
// Множители
const guildMultiplier = parseFloat(document.getElementById('guild-multiplier-3').value) || 1.0;
const portalMultiplier = parseFloat(document.getElementById('portal-multiplier-3').value) || 1.0;
// Рассчитываем количество рун
const runCount = ((newKilled1 - lastKilled1) / 100 + (newKilled2 - lastKilled2) / 10) * guildMultiplier * portalMultiplier;
// Вводные данные для книги и песочных часов
const bookInput = parseFloat(document.getElementById('bookInput').value) || 0;
const hourglassInput = parseFloat(document.getElementById('hourglassInput').value) || 0;
// Обновляем поля для книги и песочных часов
document.getElementById('bookInput').value = (bookInput + runCount).toFixed(2);
document.getElementById('hourglassInput').value = (hourglassInput + runCount).toFixed(2);
// Обновляем данные для "входящих убитых"
const incomingKilled1 = parseInt(document.getElementById('incomingKilled1Input').value) || 0;
const incomingKilled2 = parseInt(document.getElementById('incomingKilled2Input').value) || 0;
// Рассчитываем и обновляем количество убитых
const totalKilled1 = newKilled1 - incomingKilled1;
const totalKilled2 = newKilled2 - incomingKilled2;
document.getElementById('totalKilled1Input').value = totalKilled1;
document.getElementById('totalKilled2Input').value = totalKilled2;
// Сохраняем текущие значения для правильных расчётов при повторных подсчётах
const initialNewKilled1 = newKilled1;
const initialNewKilled2 = newKilled2;
// Обновляем последние убитые, чтобы они отображали последние данные
document.getElementById('lastKilled1Input').value = newKilled1; // Обновляем последние убитые для первого
document.getElementById('lastKilled2Input').value = newKilled2; // Обновляем последние убитые для второго
// Обновляем новые введенные данные
document.getElementById('newInputs1').value = newKilled1;
document.getElementById('newInputs2').value = newKilled2;
// Для корректного подсчета разницы в "последних убитых" необходимо, чтобы старые значения оставались неизменными
const diffKilled1 = initialNewKilled1 - lastKilled1; // Разница для 💀
const diffKilled2 = initialNewKilled2 - lastKilled2; // Разница для ☠️
// Применяем изменения для отображения разницы
document.getElementById('lastKilled1Input').value = diffKilled1; // Отображаем разницу для 💀
document.getElementById('lastKilled2Input').value = diffKilled2; // Отображаем разницу для ☠️
// Сохраняем текущие новые убитые как последние для следующего подсчёта
document.getElementById('lastInput1').value = initialNewKilled1; // Сохраняем новые убитые в последние убитые для первого
document.getElementById('lastInput2').value = initialNewKilled2; // Сохраняем новые убитые в последние убитые для второго
// Для отображения "Изн. убитые", которые вводит пользователь
const lostKilled1 = parseInt(document.getElementById('lostKilled1Input').value) || 0;
const lostKilled2 = parseInt(document.getElementById('lostKilled2Input').value) || 0;
// Рассчитываем Общие убитые = Новые вводные - Изн. убитые
const totalKilledAfterLost1 = newKilled1 - lostKilled1;
const totalKilledAfterLost2 = newKilled2 - lostKilled2;
// Обновляем поле для отображения "Общие убитые"
document.getElementById('totalKilledAfterLost1Input').value = totalKilledAfterLost1;
document.getElementById('totalKilledAfterLost2Input').value = totalKilledAfterLost2;
}
// Функция для сохранения данных
function saveData() {
const username = document.getElementById('username').value;
if (username) {
const data = {
death1: document.getElementById('death1Input').value,
death2: document.getElementById('death2Input').value,
last1: document.getElementById('lastInput1').value,
last2: document.getElementById('lastInput2').value,
book: document.getElementById('bookInput').value,
hourglass: document.getElementById('hourglassInput').value,
incoming1: document.getElementById('incomingKilled1Input').value,
incoming2: document.getElementById('incomingKilled2Input').value,
total1: document.getElementById('totalKilled1Input').value,
total2: document.getElementById('totalKilled2Input').value,
new1: document.getElementById('newInputs1').value,
new2: document.getElementById('newInputs2').value,
lastKilled1: document.getElementById('lastKilled1Input').value,
lastKilled2: document.getElementById('lastKilled2Input').value
};
localStorage.setItem(`userData_${username}`, JSON.stringify(data));
alert('Данные успешно сохранены.');
} else {
alert('Введите имя пользователя для сохранения данных.');
}
}
// Функция для восстановления данных
function restoreData() {
const username = document.getElementById('username').value;
if (username) {
const savedData = localStorage.getItem(`userData_${username}`);
if (savedData) {
const data = JSON.parse(savedData);
document.getElementById('death1Input').value = data.death1 || 0;
document.getElementById('death2Input').value = data.death2 || 0;
document.getElementById('lastInput1').value = data.last1 || 0;
document.getElementById('lastInput2').value = data.last2 || 0;
document.getElementById('bookInput').value = data.book || 0;
document.getElementById('hourglassInput').value = data.hourglass || 0;
document.getElementById('incomingKilled1Input').value = data.incoming1 || 0;
document.getElementById('incomingKilled2Input').value = data.incoming2 || 0;
document.getElementById('totalKilled1Input').value = data.total1 || 0;
document.getElementById('totalKilled2Input').value = data.total2 || 0;
document.getElementById('newInputs1').value = data.new1 || 0;
document.getElementById('newInputs2').value = data.new2 || 0;
document.getElementById('lastKilled1Input').value = data.lastKilled1 || 0;
document.getElementById('lastKilled2Input').value = data.lastKilled2 || 0;
alert('Данные успешно восстановлены.');
} else {
alert('Нет сохраненных данных для данного пользователя.');
}
} else {
alert('Введите имя пользователя для восстановления данных.');
}
}
// Функция для редактирования данных
function editData() {
// Разблокировать все поля ввода, кроме 💀: и ☠️:
document.querySelectorAll('.input-field').forEach(input => {
if (!input.id.includes('death1Input') && !input.id.includes('death2Input')) {
input.removeAttribute('disabled');
}
});
document.getElementById('saveEditButton').style.display = 'inline-block'; // Показать кнопку "Сохранить"
document.getElementById('editButton').style.display = 'inline-block'; // Показать кнопку "Редактировать"
}
// Функция для сохранения редактирования
function saveEdit() {
// Заблокировать все поля ввода, кроме 💀: и ☠️:
document.querySelectorAll('.input-field').forEach(input => {
if (!input.id.includes('death1Input') && !input.id.includes('death2Input')) {
input.setAttribute('disabled', 'disabled');
}
});
document.getElementById('saveEditButton').style.display = 'none'; // Скрыть кнопку "Сохранить"
document.getElementById('editButton').style.display = 'inline-block'; // Показать кнопку "Редактировать"
}