-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathnews.js
140 lines (128 loc) · 6.29 KB
/
news.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
function News() {
var news = [
[
"Восприятие и мудрость",
"05.01.2015",
"Добавлены два новых атрибута: восприятие и мудрость, и два соответствующих витамина.",
"Помимо этого изменены связи между витаминами и атрибутами.",
"Также пересмотрены привязки навыков к атрибутам. Скажем, фермерство теперь зависит от восприятия, а кулинария от мудрости.",
"Увеличин прирост количества витаминов при повышении качества еды.",
"Почти вся сырая еда больше не дает никаких витаминов.",
"Повышение навыка больше не вызывает понижение связанного. Вместо этого на повышение навыка теперь требуется больше витаминов, пропорционально уровню связанного навыка."
],
[
"Баланс",
"04.01.2015",
"Уменьшен эффект замедления от переедания жажды до 45%. Таким образом персонаж может двигаться, хотя и очень медленно, при наличии обоих эффектов.",
"Постройка респауна стала еще легче",
],
[
"Автокрафт и автоперемещение",
"03.01.2015",
"Добавлена кнопка перемещения всего содержимого контейнера.",
"Добавлена кнопка запускающая автоматический крафт, пока не кончатся ресурсы.",
],
[
"Лук, стены и знамена",
"03.01.2015",
"Добавлены:",
[
"Лук репчатый и зеленый",
"Знамена",
"Новые книжки",
],
"Библиотека при имперской канцелярии открыта для всех желающих на рыночной площади."
],
[
"Обновление предметов",
"02.01.2015",
"Добавлены:",
[
"плетеный забор",
"книжный шкаф",
],
"Обновлены рецепты некоторых предметов.",
"На бумаге теперь можно писать.",
],
[
"Плуг и каменные стены",
"30.12.2014",
"Добавлены:",
[
"плуг",
"новые каменные стены в ассортименте",
"поленница",
"настройка разрешающая выделять себя",
],
],
[
"Новогодний ивент",
"29.12.2014",
"Дед Мороз и снегурка выдают подарки на рыночной площади в обмен на этомы.",
"Нафарми елку — создай праздничное настроение :3",
],
[
"Можно копать землю",
"25.12.2014",
"Лопатой можно копать землю получая соответствующий предмет. " +
"Затем полученной землей можно засыпать вспаханную землю и неглубокую воду.",
"Также копание теперь можно ставить в очередь используя шифт+пробел+клик.",
],
[
"Новости",
"25.12.2014",
"Добавлены внутреигровые новости.",
"Так же читайте новости в нашей <a href=http://vk.com/rogalik_mmo target=_blank>группе вк</a>.",
],
];
var lsKey = "news.viewed";
var viewed = localStorage.getItem(lsKey) || news.length;
var list = document.createElement("ul");
function makeList(items) {
var list = document.createElement("ul");
items.forEach(function(html) {
var item = document.createElement("li");
item.innerHTML = html;
list.appendChild(item);
})
return list;
}
this.show = function() {
localStorage.setItem(lsKey, news.length);
news.forEach(function(record, i) {
var title = record.shift();
var date = record.shift();
var item = document.createElement("li");
if (i < news.length - viewed)
item.classList.add("unread");
var time = document.createElement("time");
time.textContent = date;
item.appendChild(time);
var summary = document.createElement("div");
summary.className = "summary";
summary.textContent = title;
item.appendChild(summary);
var details = document.createElement("div");
details.className = "details";
record.forEach(function(row) {
if (Array.isArray(row)) {
details.appendChild(makeList(row));
} else {
var p = document.createElement("p");
p.innerHTML = row;
details.appendChild(p);
}
});
item.appendChild(details);
list.appendChild(item);
})
this.panel.hooks.show = null;
}.bind(this)
this.panel = new Panel("news", "Good news, everyone!", [list]);
if (this.panel.visible)
this.show()
else
this.panel.hooks.show = this.show;
if (viewed < news.length)
this.panel.show();
}