Repository navigation
Expand file tree
/
Copy pathKassier.user.js
More file actions
74 lines (62 loc) · 2.52 KB
/
Copy pathKassier.user.js
File metadata and controls
74 lines (62 loc) · 2.52 KB
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
// ==UserScript==
// @name * Kassier
// @namespace bos-ernie.leitstellenspiel.de
// @version 4.0.0
// @license BSD-3-Clause
// @author BOS-Ernie
// @description Zeigt die Credits für jeden Einsatz in der Einsatzliste an.
// @match https://www.leitstellenspiel.de/
// @match https://polizei.leitstellenspiel.de/
// @icon https://www.google.com/s2/favicons?sz=64&domain=leitstellenspiel.de
// @run-at document-idle
// @grant none
// @resource https://forum.leitstellenspiel.de/index.php?thread/25633-script-kassier/
// ==/UserScript==
/* global missionMarkerAdd */
(function () {
const originalFunc = missionMarkerAdd;
missionMarkerAdd = function (mission) {
originalFunc.apply(this, arguments);
eventHandler(mission);
};
function createMissionCreditsElement(missionId, credits) {
let missionCredits = document.createElement("span");
missionCredits.setAttribute("id", "mission_credits_" + missionId);
missionCredits.innerText = credits;
missionCredits.style.marginRight = "3px";
if (credits === 0) {
missionCredits.innerText = "🚑";
} else if (credits >= 12000) {
missionCredits.setAttribute("class", "label label-primary");
} else if (credits >= 7000) {
missionCredits.setAttribute("class", "label label-info");
} else if (credits >= 5000) {
missionCredits.setAttribute("class", "label label-success");
} else {
missionCredits.setAttribute("class", "label label-default");
}
return missionCredits;
}
function addOrReplaceMissionCreditsElement(mission) {
const missionId = mission.getAttribute("mission_id");
const dataSortableBy = mission.getAttribute("data-sortable-by");
const credits = JSON.parse(dataSortableBy).average_credits;
const currentMissionCreditsElement = document.getElementById("mission_credits_" + missionId);
const newMissionCreditsElement = createMissionCreditsElement(missionId, credits);
if (currentMissionCreditsElement !== null) {
currentMissionCreditsElement.replaceWith(newMissionCreditsElement);
} else {
document.getElementById("mission_caption_" + missionId).before(newMissionCreditsElement);
}
}
function eventHandler(event) {
addOrReplaceMissionCreditsElement(document.getElementById("mission_" + event.id));
}
function main() {
const missionList = document.querySelectorAll(".missionSideBarEntry");
missionList.forEach(mission => {
addOrReplaceMissionCreditsElement(mission);
});
}
main();
})();