v2 update sprechwunsch

This commit is contained in:
2018-11-28 20:54:51 +01:00
parent 2cb35c4f6c
commit 54a05be229
3 changed files with 622 additions and 12 deletions

View File

@@ -27,7 +27,7 @@ class AutomaticDispose {
this.RescueVehicleFrameWatchDog = null;
this.PoliceVehicleFrameWatchDog = null;
this.ADisDB = new Dexie('LSS_AutomaticDispo');
this.ADisDB.version(1).stores({
@@ -120,9 +120,21 @@ class AutomaticDispose {
}
/**
* / /=require ../script/mission.js
* / /=require ../script/sprechwunsch.js
*/
* / /=require ../script/mission.js
*/
// -
// - Sprechwunsch Handler Rettung
// -
if (window.location.pathname.indexOf("/vehicles/") !== -1 && window.name == 'adis-sprechwunsch-rescue') {
that.Check_Call_Hospitals();
}
// -
// - Sprechwunsch Handler Polizei/Gefangene
// -
if (window.location.pathname.indexOf("/missions/") !== -1 && window.name == 'adis-sprechwunsch-police') {
that.Check_Call_Police_Active();
}
});
console.log('nonstatic', this.ADisSettings)
@@ -140,7 +152,7 @@ class AutomaticDispose {
ADSettings() {
let that = this;
return new Promise((resolve, reject) =>{
return new Promise((resolve, reject) => {
let res = {};
that.ADisDB.ADisSettings.each((setting) => {
res[setting.name] = setting.value;
@@ -243,6 +255,103 @@ class AutomaticDispose {
}
Check_Call_Hospitals() {
if ($("h4:contains('Eigene Krankenhäuser')").length > 0 || $("h4:contains('Verbandskrankenhäuser')").length > 0) {
this.Collect_Hospitals();
} else {
VehicleID = document.location.pathname.substr(document.location.pathname.lastIndexOf("/") + 1);
this.RemoveRescueSprechwunschFromQueue(VehicleID).then((deleteCount) => {
$("#adis-sprechwunsch-rescue-frame").attr("src", "");
$("#adis-sprechwunsch-rescue-frame").attr("vehicle_id", "empty");
});
}
}
// Krankenhaus auswählen
Collect_Hospitals() {
if ($("h4:contains('Eigene Krankenhäuser')").length > 0) {
$("h4:contains('Eigene Krankenhäuser')").next("table").find("tbody").find("tr").each(function () {
var HospitalHref = $(this).find("a:contains('Anfahren')").attr("href");
var HospitalID = Number(parseInt($(this).find("a:contains('Anfahren')").attr("id").replace("btn_approach_", "")));
var HospitalDistance = parseInt($(this).find("td").eq("1").text());
var HospitalFreeBeds = parseInt($(this).find("td").eq("2").text());
var HospitalValue = HospitalDistance * 450 * -1;
HospitalValue += 2000; // Own Hospitals are better :-)
if ($(this).find(".label:contains('Ja')").length > 0) {
HospitalValue += 2000;
}
if (HospitalFreeBeds > 0) {
Hospitals.push({
"id": HospitalID,
"value": HospitalValue,
"distance": HospitalDistance,
"href": HospitalHref
});
}
});
}
if ($("h4:contains('Verbandskrankenhäuser')").length > 0) {
$("h4:contains('Verbandskrankenhäuser')").next("table").find("tbody").find("tr").each(function () {
var HospitalHref = $(this).find("a").attr("href")
var HospitalID = Number(parseInt(HospitalHref.substr(HospitalHref.lastIndexOf("/") + 1)));
var HospitalDistance = parseInt($(this).find("td").eq("1").text());
var HospitalFreeBeds = parseInt($(this).find("td").eq("2").text());
var HospitalTaxes = parseInt($(this).find("td").eq("3").text());
var HospitalSpecialDepartment = false;
// Add Button-ID to Alliance-Hospital
$(this).find("a").attr("id", "btn_approach_" + HospitalID.toString());
var HospitalValue = HospitalDistance * 450 * -1;
if ($(this).find(".label:contains('Ja')").length > 0) {
HospitalSpecialDepartment = true;
HospitalValue += 2000;
}
if (HospitalTaxes == 0) {
HospitalValue += 2000;
} else if (HospitalTaxes > 0 && HospitalTaxes <= 10) {
HospitalValue += 1000;
} else if (HospitalTaxes > 10 && HospitalTaxes <= 20) {
HospitalValue += 0;
} else {
HospitalValue -= 5000;
}
if (HospitalFreeBeds > 0 && HospitalSpecialDepartment) {
Hospitals.push({
"id": HospitalID,
"value": HospitalValue,
"taxes": HospitalTaxes,
"distance": HospitalDistance,
"href": HospitalHref
});
}
});
}
Hospitals.sort(function (a, b) {
return a.value - b.value;
});
Hospitals.reverse();
this.Send_Vehicle_To_Hospital()
}
// Krankenhaus einlieferung
Send_Vehicle_To_Hospital() {
//var HospitalID = Hospitals[0].id;
var HospitalHref = Hospitals[0].href;
// TODO: tellParent("ADisMissionDone(" + window.name + "," + MissionID + ");");
document.location.href = document.location.origin + HospitalHref;
}
// - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// -
// - Assign & Unassign Missions to Dispatchers
@@ -333,6 +442,202 @@ class AutomaticDispose {
}).catch((err) => {})
}
Check_Call_Police_Active() {
if ($('#h2_prisoners').length > 0) {
this.Collect_Jails();
} else {
this.RemovePoliceSprechwunschFromQueue(MissionID).then((deleteCount) => {
$("#adis-sprechwunsch-police-frame").attr("src", "");
$("#adis-sprechwunsch-police-frame").attr("mission_id", "empty");
});
}
}
// Gefängnis auswählen
Collect_Jails() {
var CountGefangene = Number(parseInt($('#h2_prisoners').text()));
var parentNode = $('#mission_vehicle_at_mission tr > td:nth-child(5) > a:contains("Jomaar")').parent().parent();
var GefKw = parentNode.find('td:nth-child(2) > a[vehicle_type_id="52"]');
var FuStW = parentNode.find('td:nth-child(2) > a[vehicle_type_id="32"]');
var GefKwGefaegnisse = $(GefKw[0]).parent().parent().next('tr');
var FuStWGefaegnisse = $(FuStW[0]).parent().parent().next('tr');
GefKwGefaegnisse.find("a:contains('Freie Zellen')").each(function () {
var JailHref = $(this).attr("href");
var JailID = JailHref.split("/").pop();
var JailText = $(this).text();
var JailFreeBeds = 0;
var JailDistance = 0;
var JailTax = 0;
let m;
while ((m = JailRegEx.exec(JailText)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === JailRegEx.lastIndex) {
JailRegEx.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
if (groupIndex == 1) {
JailFreeBeds = parseInt(match.trim());
} else if (groupIndex == 2) {
JailDistance = parseInt(match.trim());
} else if (groupIndex == 3 && typeof match != "undefined") {
JailTax = parseInt(match.trim());
}
});
}
var JailValue = JailDistance * 450 * -1;
JailValue += 11; //GefKw bevorzugt
if (JailTax == 0) {
JailValue += 10000;
} else if (JailTax > 0 && JailTax <= 10) {
JailValue += 5000;
} else if (JailTax > 10 && JailTax <= 20) {
JailValue += 1000;
} else {
JailValue -= 10000;
}
if (JailFreeBeds >= 5) {
JailValue += 15000;
} else if (JailFreeBeds >= 1) {
JailValue += 1000;
} else {
JailValue -= 5000;
}
if (JailFreeBeds >= 5) {
Jails.push({
"id": JailID,
"value": JailValue + 1000,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
} else if (JailFreeBeds >= 1) {
Jails.push({
"id": JailID,
"value": JailValue,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
}
});
FuStWGefaegnisse.find("a:contains('Freie Zellen')").each(function () {
var JailHref = $(this).attr("href");
var JailID = JailHref.split("/").pop();
var JailText = $(this).text();
var JailFreeBeds = 0;
var JailDistance = 0;
var JailTax = 0;
let m;
while ((m = JailRegEx.exec(JailText)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === JailRegEx.lastIndex) {
JailRegEx.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
if (groupIndex == 1) {
JailFreeBeds = parseInt(match.trim());
} else if (groupIndex == 2) {
JailDistance = parseInt(match.trim());
} else if (groupIndex == 3 && typeof match != "undefined") {
JailTax = parseInt(match.trim());
}
});
}
var JailValue = JailDistance * 450 * -1;
if (JailTax == 0) {
JailValue += 10000;
} else if (JailTax > 0 && JailTax <= 10) {
JailValue += 5000;
} else if (JailTax > 10 && JailTax <= 20) {
JailValue += 1000;
} else {
JailValue -= 10000;
}
if (JailFreeBeds >= 5) {
JailValue += 15000;
} else if (JailFreeBeds >= 1) {
JailValue += 1000;
} else {
JailValue -= 5000;
}
if (JailFreeBeds >= CountGefangene) {
Jails.push({
"id": JailID,
"value": JailValue + 1000,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
} else if (JailFreeBeds >= 1) {
Jails.push({
"id": JailID,
"value": JailValue,
"text": JailText,
"distance": JailDistance,
"href": JailHref
});
}
});
Jails.sort(function (a, b) {
return a.value - b.value;
});
Jails.reverse();
if (Jails.length > 0) {
this.Send_Vehicle_To_Jail()
} else {
$("#mission_vehicle_driving tbody, #mission_vehicle_at_mission tbody").find("tr").each(function () {
var CalledVehicleID = parseInt($(this).find("a").first().attr("vehicle_type_id"));
if (CalledVehicleID == 52) {
CountGefangene -= 5;
} else if (CalledVehicleID == 32) {
CountGefangene -= 1;
}
});
if ($('#vehicle_show_table_all tr[vehicle_type="GefKw"] input[type="checkbox"]').size() > 0 && CountGefangene >= 5) {
$('#vehicle_show_table_all tr[vehicle_type="GefKw"] input[type="checkbox"]').each(function () {
if (CountGefangene > 0) {
$(this).click()
CountGefangene -= 5;
}
});
}
if ($('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').size() > 0 && CountGefangene > 0) {
$('#vehicle_show_table_all tr[vehicle_type="FuStW"] input[type="checkbox"]').each(function () {
if (CountGefangene > 0) {
$(this).click()
CountGefangene -= 1;
}
});
}
if ($('#vehicle_show_table_all input[type="checkbox"]:checked').size() > 0) {
$('#mission_alarm_btn').click();
}
}
}
// Gefängnis einlieferung
Send_Vehicle_To_Jail() {
var JailHref = Jails[0].href
document.location.href = document.location.origin + JailHref;
}
// -
// - Index Page Loader
// -