1
0
Fork 0
forked from Simnation/Main
Main/resources/[Developer]/[Anna]/brutal_ambulancejob/html/script.js
2025-06-07 08:51:21 +02:00

1417 lines
48 KiB
JavaScript

ChoosedButton = 0
InSubMenu = false
OpenedMDT = false
DeathTimer = false
window.addEventListener('message', function(event) {
let data = event.data
if (data.action === "OpenJobMenu"){
InteractionsTable = data.interactionstable
CreateJobMenu()
}
else if (data.action === "OpenMDTMenu"){
OpenedMDT = true
Job = data.job
Medicers = data.medicers
Street = data.street
PlayerName = data.name
MoneyForm = data.moneyform
document.getElementById("MDT").style.animation = "Show_panel 0.5s ease";
$(".MDT").css("display","block")
$(".logo_img").attr('src', "assets/"+Job.job+".png")
InsertHomeData()
RefreshTime()
}
else if(data.action === "MDTGetCalls"){
CitizenCalls = data.table
PlayerId = data.myid
CreateCitizenCalls()
}
else if(data.action === "MDTGetInvoiceTypes"){
Invoices = data.table
TargetName = data.targetname
CreateInvoices()
TypeAhead()
}
else if(data.action === "OpenMedicerMenu"){
Damages = data.damagestable
MedicerItems = data.items
Mediceryou = data.you
DeathStatus = data.deathstatus
Bpm = data.bpm
Gender = data.gender
DeathReason = data.deathreason
document.getElementById("medic_panel").style.animation = "Show_panel 0.5s ease";
document.getElementById("medic_panel_me").style.animation = "Show_panel 0.5s ease";
if (Mediceryou){
$("#medic_panel_me").css("display","block")
}
else{
$("#medic_panel").css("display","block")
}
CreateMedicerMenu()
}
else if (data.action === "OpenInteractionMenu"){
InteractionTable = {"Type" : data.type, "Label" : data.label, "Table" : data.table}
CreateInteractionMenu()
}
else if (data.action === "OpenArmory"){
CreateArmoryMenu()
}
else if (data.action === "OpenShopMenu"){
ShopItems = data.items
MoneyForm = data.moneyform
Card = data.card
CreateShop(Card)
}
else if(data.action === "LiveryMenu"){
document.getElementById("vehicle_livery").style.animation = "Appear_Menu 0.5s ease";
$(".vehicle_livery").css("display", "block")
$("#livery").html("Livery: "+data.livery)
}
else if(data.action === "HideLiveryMenu"){
document.getElementById("vehicle_livery").style.animation = "Hide_panel 0.5s ease";
setTimeout(function(){
$(".vehicle_livery").css("display","none")
}, 400)
}
else if(data.action === "CitizenCallMenu"){
document.getElementById("create_citizen_call").style.animation = "Appear_Menu 0.5s ease";
$("#create_citizen_call").css("display", "block")
}
else if (data.action === "DeathScreen"){
$(".death_screen").css("display","block")
let AllTime = data.time
let Time = data.time
let DeathCall = data.call
let Request = data.request
let WaitTime = data.waittime
let AllWaitTime = data.waittime
DeathTimer = true
function CountbackDeath(){
if (Time > 0){
$(`.death_screen .time_con .time`).html(fancyTimeFormat(Time))
$(`.death_screen .time_con .time_line`).css("width", (Time/AllTime*100)+"%")
}
else{
$(`.death_screen .time_con .time`).html(fancyTimeFormat(WaitTime))
$(`.death_screen .time_con .time_line`).css("width", (WaitTime/AllWaitTime*100)+"%")
}
setTimeout(function(){
if ((Time > 0 || WaitTime > 0) && DeathTimer){
if (Time > 0){
Time = Time - 1
}
else{
WaitTime = WaitTime - 1
if(DeathCall){
document.getElementById("d_info2").style.animation = "none";
document.getElementById("hbtn_press2").style.animation = "none";
$("#d_info2").css("display","block")
}
else{
document.getElementById("d_info").style.animation = "htext_anim 2s ease-in-out";
document.getElementById("hbtn_press").style.animation = "hbtn_anim 2s ease-in-out";
setTimeout(function(){
$("#d_info").css("display","none")
document.getElementById("d_info2").style.animation = "none";
document.getElementById("hbtn_press2").style.animation = "none";
$("#d_info2").css("display","block")
}, 2000)
}
}
CountbackDeath()
}
},1000)
}
if(Request){
document.getElementById("d_info2").style.animation = "htext_anim 2s ease-in-out";
document.getElementById("hbtn_press2").style.animation = "hbtn_anim 2s ease-in-out";
setTimeout(function(){
$("#d_info2").css("display","none")
}, 2000)
}
if (DeathCall){
document.getElementById("d_info").style.animation = "htext_anim 2s ease-in-out";
document.getElementById("hbtn_press").style.animation = "hbtn_anim 2s ease-in-out";
setTimeout(function(){
$("#d_info").css("display","none")
}, 2000)
}
else{
document.getElementById("d_info2").style.animation = "none";
document.getElementById("d_info").style.animation = "none";
document.getElementById("hbtn_press").style.animation = "none";
document.getElementById("hbtn_press2").style.animation = "none";
$("#d_info").css("display","block")
$("#d_info2").css("display","none")
CountbackDeath()
}
}
else if (data.action === "DeathScreenHide"){
DeathTimer = false
$(`.death_screen`).css("display", "none")
}
else if (data.action === "ControlReleased"){
Control = data.control
if(Control === "up" || Control === "down" ){
ChangeFocus(Control)
}
else if(Control === "enter"){
document.getElementById("circle_"+ChoosedButton).click()
}
else if(Control === "backspace"){
if(InSubMenu){
BackJobMenu()
}
else{
Close()
}
}
}
else if (data.action === "close"){
Close()
}
})
document.onkeydown = function(data) {
if (event.key == 'Escape') {
Close()
}
}
function Close(){
CloseMDT()
CloseShop()
CloseCitizenCall()
HideJobMenu()
CloseMedicPanel()
HideInteractionMenu()
setTimeout(function(){
$('.modal').modal('hide')
},500)
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"close"}))
}
///////////////////////////////////////////////////////////////////// | _ \ __ ) \ | ____| \ | | | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////////////////////////// | | | __ \ |\/ | __| \ | | | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////////////////////////// \ | | | | | | | | |\ | | | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////////////////////////// \___/ \___/ ____/ _| _| _____|_| \_|\___/ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function ChangeFocus(direction){
if(direction === "up"){
if(InSubMenu === false){
if(InteractionsTable.length >= ChoosedButton +2){
ChoosedButton++
}
else if(InteractionsTable.length === ChoosedButton +1){
ChoosedButton = 0
}
}
else{
if(InteractionsTable[SubNumber].table.length > ChoosedButton + 1){
ChoosedButton++
}
else if(InteractionsTable[SubNumber].table.length === ChoosedButton +1){
ChoosedButton = 0
}
}
}
else{
if(InSubMenu === false){
if(ChoosedButton === 0){
ChoosedButton = InteractionsTable.length -1
}
else{
ChoosedButton = ChoosedButton -1
}
}
else{
if(ChoosedButton === 0){
ChoosedButton = InteractionsTable[SubNumber].table.length -1
}
else{
ChoosedButton = ChoosedButton -1
}
}
}
if(InSubMenu){
for(let i=0; i<InteractionsTable[SubNumber].table.length; i++){
document.getElementById("circle_"+i).classList.remove("hovered_circle")
}
Circle_Label = InteractionsTable[SubNumber].table[ChoosedButton].label
}
else{
for(let i=0; i<InteractionsTable.length; i++){
document.getElementById("circle_"+i).classList.remove("hovered_circle")
}
Circle_Label = InteractionsTable[ChoosedButton].label
}
document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
$(".circles_label").html(Circle_Label)
}
function CreateJobMenu(){
InSubMenu = false
let Num_elements = InteractionsTable.length
let Angle = 144/(Num_elements-1)
let Rot = -108
ChoosedButton = 0
document.getElementById("job_menu").style.animation = "ShowJobMenu 1s ease";
$(".job_menu").css("display","block")
$(".circle_container").html("")
for(let i=0; i<Num_elements; i++){
if (InteractionsTable[i].table == undefined){
$(".circle_container").append(`
<button class="circle_element" id="circle_${i}" onclick="SendBackIntButton(id, false)">${InteractionsTable[i].icon}</button>
`)
}
else{
$(".circle_container").append(`
<button class="circle_element" id="circle_${i}" onclick="ChangeJobButtons(id)">${InteractionsTable[i].icon}</button>
`)
}
$(".job_menu #circle_"+i).css("transform", "rotate("+Rot+"deg) translate(150px) rotate("+Rot*(-1)+"deg)")
Rot = Rot - Angle
}
document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
$(".circles_label").html(InteractionsTable[0].label)
}
function HideJobMenu(){
document.getElementById("job_menu").style.animation = "HideJobMenu 1s ease";
setTimeout(function(){
$(".job_menu").css("display","none")
},900)
}
function ChangeJobButtons(id){
InSubMenu = true
document.getElementById("job_menu").style.animation = "ChangeJobMenu 0.8s ease";
SubNumber = id.split('_').pop();
let Num_elements = InteractionsTable[SubNumber].table.length
let Angle = 144/(Num_elements-1)
let Rot = -108
setTimeout(function(){
$(".circle_container").html("")
for(let i=0; i<Num_elements; i++){
$(".circle_container").append(`
<button class="circle_element" id="circle_${i}" onclick="SendBackIntButton(id, true)">${InteractionsTable[SubNumber].table[i].icon}</button>
`)
$(".job_menu #circle_"+i).css("transform", "rotate("+Rot+"deg) translate(150px) rotate("+Rot*(-1)+"deg)")
Rot = Rot - Angle
}
ChoosedButton = 0
document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
$(".circles_label").html(InteractionsTable[SubNumber].table[0].label)
},400)
if (SubNumber == 2){
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"JobMenuObject"}))
}
}
function BackJobMenu(){
InSubMenu = false
let Num_elements = InteractionsTable.length
let Angle = 144/(Num_elements-1)
let Rot = -108
document.getElementById("job_menu").style.animation = "BackJobMenu 0.8s ease";
setTimeout(function(){
$(".circle_container").html("")
for(let i=0; i<Num_elements; i++){
if (InteractionsTable[i].table == undefined){
$(".circle_container").append(`
<button class="circle_element" id="circle_${i}" onclick="SendBackIntButton(id, false)">${InteractionsTable[i].icon}</button>
`)
}
else{
$(".circle_container").append(`
<button class="circle_element" id="circle_${i}" onclick="ChangeJobButtons(id)">${InteractionsTable[i].icon}</button>
`)
}
$(".job_menu #circle_"+i).css("transform", "rotate("+Rot+"deg) translate(150px) rotate("+Rot*(-1)+"deg)")
Rot = Rot - Angle
}
ChoosedButton = 0
document.getElementById("circle_"+ChoosedButton).classList.add("hovered_circle")
$(".circles_label").html(InteractionsTable[0].label)
},400)
}
function SendBackIntButton(id, value){
let idnumber = id.split('_').pop()
if (value == true){
for(let i=0; i<InteractionsTable[SubNumber].table.length; i++){
if (i == idnumber){
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"JobMenu", id:InteractionsTable[SubNumber].table[i].id}))
break
}
}
}
else{
for(let i=0; i<InteractionsTable.length; i++){
if (i == idnumber){
HideJobMenu()
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"JobMenu", id:InteractionsTable[i].id}))
break
}
}
}
}
//////////////////////////////////////////////////////////////// INTERACTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function CreateInteractionMenu(){
$(".interactions h2").html(InteractionTable.Label)
$(".int_con_sec").html("")
for(let i=0; i<InteractionTable.Table.length; i++){
$(".int_con_sec").append(`
<div class="col">
<div class="d-flex flex-column justify-content-center align-items-center">
<button class="long_btn mb-3" id="${InteractionTable.Table[i].id}" onclick="SetDress(id)">${InteractionTable.Table[i].label}</button>
</div>
</div>
`)
if (InteractionTable.Table[i].label.length > 17){
$("#"+InteractionTable.Table[i].id).css("font-size", "15px")
}
}
document.getElementById("interactions").style.animation = "ShowIneractionMenu 0.7s ease";
$(".interactions").css("display","block")
}
function SetDress(id){
Close()
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"interactionmenu", id, table:InteractionTable}))
}
function CreateArmoryMenu(){
$(".interactions h2").html("Storage")
$(".int_con_sec").html("")
$(".int_con_sec").html(`
<div class="col">
<div class="d-flex flex-column justify-content-center align-items-center">
<button class="long_btn mb-3" onclick="Armory()">Armory</button>
</div>
</div>
<div class="col">
<div class="d-flex flex-column justify-content-center align-items-center">
<button class="long_btn mb-3" onclick="Buy()">Shop</button>
</div>
</div>
`)
document.getElementById("interactions").style.animation = "ShowIneractionMenu 0.7s ease";
$(".interactions").css("display","block")
}
function Armory(){
Close()
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"armory"}))
}
function Buy(){
HideInteractionMenu()
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"armory-shop"}))
}
function HideInteractionMenu(){
document.getElementById("interactions").style.animation = "HideInteractionMenu 0.7s ease";
setTimeout(function(){
$(".interactions").css("display","none")
},680)
}
///////////////////////////////////////////////////////////////// SHOP MENU \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function CreateShop(value){
$(".shop").css("display", "block")
setTimeout(function(){
$(".shop").css("scale", "1")
}, 50)
if (value == true){
$(".slider_btn").css("display", "block")
$("#shop_back").css("display", "block")
}
else{
$(".slider_btn").css("display", "none")
$("#shop_back").css("display", "none")
}
$(".shop_elements_container").html("")
for(let i=0; i<ShopItems.length; i++){
$(".shop_elements_container").append(`
<div class="col">
<div class="d-flex flex-column justify-content-center align-items-center">
<div class="shop_element">
<div class="price">${ShopItems[i].price+MoneyForm}</div>
<img class="mx-auto d-block" src="assets/${ShopItems[i].item}.png"></img>
<h4>${ShopItems[i].label}</h4>
<div class="mx-auto d-block">
<div class="input-group input-group-lg num">
<input class="form-control" id="${ShopItems[i].item}" type="text" autofocus="autofocus" value="0" oninput="setlenght(id)" onkeypress="return isNumber(event)">
</div>
</div>
</div>
</div>
</div>
`)
}
}
function BuyInShop(){
BuyItems = []
for (let i = 0; i < ShopItems.length; i++) {
if (document.getElementById(ShopItems[i].item).value > 0){
BuyItems.push([ShopItems[i].item, document.getElementById(ShopItems[i].item).value, ShopItems[i].price, ShopItems[i].label])
}
}
if (BuyItems.length > 0){
let Element = document.getElementById("slider_shop")
let Left = Element.offsetLeft
if (Left == 0){
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"BuyInShop", BuyItems, paytype:"money"}))
}
else{
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"BuyInShop", BuyItems, paytype:"bank"}))
}
}
setTimeout(function(){
for (let i = 0; i < ShopItems.length; i++) {
document.getElementById(ShopItems[i].item).value = 0
}
changemoney()
}, 200)
}
function changemoney(){
let AllMoney = 0
for (let i = 0; i < ShopItems.length; i++) {
AllMoney += ShopItems[i].price * document.getElementById(ShopItems[i].item).value
}
$('.checkout_container h3').html('TOTAL: '+AllMoney+'<money>'+MoneyForm+'</money>')
}
function ChangeSliderbtn(id){
if (id == "shop_slider"){
let Element = document.getElementById("slider_shop")
let Left = Element.offsetLeft
if (Left == 0){
Element.style.left = "50%"
}
else{
Element.style.left = "0%"
}
}
else if (id == "MDT_slider"){
let Element = document.getElementById("slider_MDT")
let Left = Element.offsetLeft
if (Left == 0){
Element.style.left = "50%"
ChangeSearch("vehicles")
}
else{
Element.style.left = "0%"
ChangeSearch("people")
}
}
}
function CloseShop(){
$(".shop").css("scale", "0")
setTimeout(function(){
$(".shop").css("display", "none")
}, 600)
}
///////////////////////////////////////////////////////////////////// \ | __ \ __ __| \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////////////////////////// |\/ | | | | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////////////////////////// | | | | | \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
///////////////////////////////////////////////////////////////////// _| _| ____/ _| \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function CloseMDT(){
document.getElementById("MDT").style.animation = "Hide_panel 0.5s ease";
setTimeout(function(){
$(".MDT").css("display","none")
if (OpenedMDT){
SwitchPage("home")
}
OpenedMDT = false
}, 400)
}
function SwitchPage(id){
if (id == "home"){
MoveBackLogo()
$(".page_data_container").html(`
<div class="background_blur_color"></div>
<div class="home_label mt-3">
<div class="background_effect"></div>
<div class="row">
<div class="col ms-3 mt-1" id="job_name"></div>
<div class="col-2 mt-1" id="home_date">date 213 23</div>
<div class="col me-3 mt-1 text-end" id="street"></div>
</div>
</div>
<div class="row mt-3 mx-2">
<div class="col">
<div class="home_stat_con mx-auto d-block">
<div class="background_effect"></div>
<div class="label">Medicers</div>
<div class="main" id="available_medicers">0</div>
</div>
</div>
<div class="col">
<div class="home_stat_con mx-auto d-block">
<div class="background_effect"></div>
<div class="label">Rank</div>
<div class="main small" id="player_rang"></div>
</div>
</div>
<div class="col">
<div class="home_stat_con mx-auto d-block">
<div class="background_effect"></div>
<div class="label">Salary</div>
<div class="main" id="salary">100$</div>
</div>
</div>
</div>
<div class="welcome_text mt-3">Welcome,<br> <span class="hand_written">Name</span></div>
`)
InsertHomeData()
}
else if (id == "invoices"){
MoveLogo()
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTInvoices", type:"get"}))
$(".page_data_container").html(`
<div class="row mt-3">
<div class="col-5">
<h2 class="sub_label">Create an invoice</h2>
<div class="input-group input-group-lg mt-3 px-3">
<input type="text" id="invoice_name" class="form-control text-center" placeholder="Name..." oninput="RefreshCreateInvoiceBTN()" >
</div>
<div class="input-group input-group-lg mt-3 px-3">
<input type="text" id="invoice_value" class="form-control text-center" placeholder="Value..." oninput="RefreshCreateInvoiceBTN()" onkeypress="return isNumber(event)">
</div>
<button class="submenu_btn px-3 m-3 mb-5 mx-auto d-block" id="create_invoice_btn" disabled onclick="CreateInvoice()">Create</button>
<h2 class="sub_label mt-5">Give an invoice</h2>
<div class="input-group input-group-lg mt-3 px-3">
<input type="text" id="in_give_invoice" class="form-control text-center rounded typeahead" data-provide="typeahead" placeholder="Label..." onchange="RefreshGiveInvoiceBTN()" oninput="RefreshGiveInvoiceBTN()">
</div>
<hr style="width: 80%; margin-left: 10%; border-top: solid 3px white; border-radius: 3px;">
<div class="give_invoiceto_con">
<div class="background_effect"></div>
<h2 class="sub_label" id="target_player">-</h2>
<h2 class="sub_label" id="invoice_price">0$</h2>
</div>
<button class="submenu_btn px-3 m-3 mx-auto d-block" id="give_invoice_btn" disabled onclick="GiveInvoice()">Give</button>
</div>
<div class="col">
<h2 class="sub_label">Invoices</h2>
<div class="invoices_container mt-3">
<div class="background_blur_color"></div>
</div>
</div>
</div>
`)
}
else if (id == "sos_alert"){
MoveLogo()
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"getcalls"}))
$(".page_data_container").html(`InsertHomeData
<div class="cam_shadow">
</div>
<div class="alert_container_out mt-3">
<div class="alert_container row row-cols-2 p-4">
</div>
</div>
`)
}
}
function InsertHomeData(){
$("#available_medicers").html(Medicers)
$("#player_rang").html(Job.label)
$("#salary").html(Job.salary+MoneyForm)
$("#job_name").html(Job.name+" - Database")
$("#street").html(`<i class="fa-solid fa-location-dot"></i> `+Street[0]+",<br>"+Street[1])
$(".welcome_text .hand_written").html(PlayerName)
if (Job.label.length > 6){
$(".home_stat_con .small").css("font-size", "30px")
}
}
function RefreshTime(){
if (OpenedMDT){
setTimeout(function(){
RefreshTime()
},100)
}
var date=new Date();
var day=date.getDate();
var month=date.getMonth()+1;
var year=date.getFullYear();
$("#home_date").html(day+"/"+month+"/"+year+"<br>"+date.toLocaleTimeString());
}
function MoveLogo(){
$(".logo_img").css({
"height": "80px",
"left": "15.2px",
})
}
function MoveBackLogo(){
$(".logo_img").css({
"height": "200px",
"left": "870px",
})
}
function CreateCitizenCalls(){
$(".alert_container_out").html(`
<div class="alert_container row row-cols-2 p-4"></div>
`)
let IsRealCall = false
if (CitizenCalls.length > 0){
for (let i = 0; i < CitizenCalls.length; i++) {
if (CitizenCalls[i].closed == false){
IsRealCall = true
if (CitizenCalls[i].medicers.length > 0){
$(".alert_container").append(`
<div class="col">
<div class="alert_element mx-auto d-block" id="alert_element_${i}">
<div class="background_effect"></div>
<div class="row">
<div class="col"><h2>Citizen call</h2></div>
<div class="col"><div class="police_on"><i class="fa-solid fa-user-group"></i> ${CitizenCalls[i].medicers.length}</div></div>
</div>
<div class="main_text">${CitizenCalls[i].text}</div>
<div class="row">
<div class="col-3">
<button class="details_btn px-3 m-3 mt-2" id="call_${i}" onclick="RefreshCallModul(id)" data-bs-toggle="modal" data-bs-target="#call_modal">More</button>
</div>
<div class="col">
<div class="street">${CitizenCalls[i].street}</div>
</div>
</div>
</div>
</div>
`)
}
else{
$(".alert_container").append(`
<div class="col">
<div class="alert_element mx-auto d-block" id="alert_element_${i}">
<div class="background_effect"></div>
<div class="row">
<div class="col"><h2>Citizen call</h2></div>
<div class="col"><div class="police_on"><i class="fa-solid fa-user-group"></i> ${CitizenCalls[i].medicers.length}</div></div>
</div>
<div class="main_text">${CitizenCalls[i].text}</div>
<div class="row">
<div class="col-3">
<button class="details_btn px-3 m-3 mt-2" id="call_${i}" onclick="RefreshCallModul(id), AcceptCall()" data-bs-toggle="modal" data-bs-target="#call_modal">Accept</button>
</div>
<div class="col">
<div class="street">${CitizenCalls[i].street}</div>
</div>
</div>
</div>
</div>
`)
}
}
if (CitizenCalls[i].medicers.length > 0){
$("#alert_element_"+i).css("background-image", "linear-gradient(var(--main_color_darker), var(--main_color))")
$("#alert_element_"+i+" .main_text").css("background-image", "linear-gradient(rgba(119, 45, 35, 0.548), rgba(175, 67, 53, 0.548))")
}
}
}
else{
$(".alert_container_out").html(`
<div class="col not_found_con py-1"><h1 class="text-center">There isn't any call</h1></div>
`)
}
if (IsRealCall == false){
$(".alert_container_out").html(`
<div class="col not_found_con py-1"><h1 class="text-center">There isn't any call</h1></div>
`)
}
}
function CreateInvoices(){
document.getElementById("target_player").innerHTML = TargetName
$(".invoices_container").html(`<div class="background_blur_color"></div>`)
for (let i = 0; i < Invoices.length; i++) {
$(".invoices_container").append(`
<div class="invoice_element" id="${i}" onclick="ShowDeleteBTN(id)">
<div class="background_effect"></div>
<div class="row invoice_row" id="invoice_row_${i}">
<div class="col">
<h2 class="name mt-2">${Invoices[i].label}</h2>
</div>
<div class="col">
<h2 class="value mt-2">${Invoices[i].amount+MoneyForm}</h2>
</div>
<div class="delete_con" id="del_${i}" onclick="DeleteInvoice(id)">
<div class="txt">Delete <i class="fa-solid fa-trash"></i></div>
</div>
</div>
</div>
`)
}
}
function RefreshCallModul(id){
CallNumber = id.split('_')[1]
let Accepted = false
$(".involved_container").html("")
for (let i = 0; i < CitizenCalls[CallNumber].medicers.length; i++) {
if (CitizenCalls[CallNumber].medicers[i].id == PlayerId){
Accepted = true
}
$(".involved_container").append(`
<div class="involved_element">
${CitizenCalls[CallNumber].medicers[i].name}
</div>
`)
if (i +1 < CitizenCalls[CallNumber].medicers.length){
$(".involved_container").append(`
<hr>
`)
}
}
if (CitizenCalls[CallNumber].closed == false){
if (Accepted == true){
$(".call_actions_container").html(`
<div class="input-group mt-3 call_reason_con">
<textarea class="form-control mx-4" id="in_call_reason" oninput="RefreshCloseCallBTN()" placeholder="Reason to close"></textarea>
</div>
<button class="submenu_btn px-3 my-3 mx-auto d-block" id="close_call" data-bs-dismiss="modal" onclick="CloseCall()" disabled>Close</button>
`)
}
}
else{
$(".call_actions_container").html(`
<h3 class="text-white text-center mt-3">Reason to close</h3>
<div class="input-group call_reason_con">
<textarea class="form-control mx-4" id="in_call_reason" disabled>${CitizenCalls[CallNumber].reason}</textarea>
</div>
`)
}
}
function AcceptCall(){
$(".call_actions_container").html(`
<div class="input-group mt-3 call_reason_con">
<textarea class="form-control mx-4" id="in_call_reason" oninput="RefreshCloseCallBTN()" placeholder="Reason to close..."></textarea>
</div>
<button class="submenu_btn my-3 px-3 mx-auto d-block" id="close_call" data-bs-dismiss="modal" onclick="CloseCall()" disabled>Close</button>
`)
let tableid = +CallNumber + +1
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"accept", tableid}))
setTimeout(function(){
$(".involved_container").html("")
for (let i = 0; i < CitizenCalls[CallNumber].medicers.length; i++) {
$(".involved_container").append(`
<div class="involved_element">
${CitizenCalls[CallNumber].medicers[i].name}
</div>
`)
if (i +1 < CitizenCalls[CallNumber].medicers.length){
$(".involved_container").append(`
<hr>
`)
}
}
},700)
}
function CloseCall(){
let tableid = +CallNumber + +1
let text = document.getElementById("in_call_reason").value
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"close", tableid, text}))
document.getElementById("in_call_reason").value = ""
}
function SendPinOnMap(){
Close()
let tableid = +CallNumber + +1
let coords = CitizenCalls[CallNumber].coords
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"blip", coords, tableid}))
}
function RefreshCloseCallBTN(){
let reason = document.getElementById("in_call_reason").value
if (reason.length > 0){
document.getElementById("close_call").disabled = false
}
else{
document.getElementById("close_call").disabled = true
}
}
function ShowDeleteBTN(id){
if (window.getComputedStyle(document.getElementById("invoice_row_"+id)).width == "680px"){
$("#invoice_row_"+id).css("width", "550px")
$("#invoice_row_"+id+" .name").css("font-size", "25px")
}
else{
$("#invoice_row_"+id).css("width", "680px")
$("#invoice_row_"+id+" .name").css("font-size", "32px")
}
}
function RefreshCreateInvoiceBTN(){
let name = document.getElementById("invoice_name").value
let value = document.getElementById("invoice_value").value
if (name.length > 0 && value.length > 0){
document.getElementById("create_invoice_btn").disabled = false
}
else{
document.getElementById("create_invoice_btn").disabled = true
}
}
function CreateInvoice(){
let label = document.getElementById("invoice_name").value
let amount = document.getElementById("invoice_value").value
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTInvoices", type:"create", label, amount}))
document.getElementById("invoice_name").value = ""
document.getElementById("invoice_value").value = ""
setTimeout(function(){
SwitchPage("invoices")
}, 200)
}
function DeleteInvoice(id){
number = Invoices[(id.split('_')[1])].id
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTInvoices", type:"delete", number}))
setTimeout(function(){
SwitchPage("invoices")
}, 200)
}
function RefreshGiveInvoiceBTN(){
let name = document.getElementById("in_give_invoice").value
let found = false
for(let i = 0; i < Invoices.length; i++){
if (name === Invoices[i].label){
document.getElementById("invoice_price").innerHTML = Invoices[i].amount + MoneyForm
found = true
}
}
if (found){
if (TargetName != "-"){
document.getElementById("give_invoice_btn").disabled = false
}
}
else{
document.getElementById("give_invoice_btn").disabled = true
document.getElementById("invoice_price").innerHTML = "0"+MoneyForm
}
}
function GiveInvoice(){
let label = document.getElementById("in_give_invoice").value
let amount
for(let i = 0; i < Invoices.length; i++){
if (label === Invoices[i].label){
amount = Invoices[i].amount
}
}
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTInvoices", type:"give", label, amount}))
document.getElementById("in_give_invoice").value = ""
document.getElementById("invoice_price").innerHTML = "0"+MoneyForm
}
function TypeAhead(){
TypeAheadList = []
for(let i = 0; i < Invoices.length; i++){
TypeAheadList.push(Invoices[i].label)
}
var $input = $(".typeahead");
$input.typeahead({
autocomplete: true,
source: TypeAheadList,
});CreateMedicerMenu
$input.change(function() {
var current = $input.typeahead("getActive");
matches = [];
if (current) {
if (current.name == $input.val()) {
matches.push(current.name);
}
}
});
}
function RefreshCreateCallBTN(){
let in_citizen_call_reason = document.getElementById("in_citizen_call_reason").value
if (in_citizen_call_reason.length > 0){
document.getElementById("create_call_btn").disabled = false
}
else{
document.getElementById("create_call_btn").disabled = true
}
}
function CreateCall(){
let text = document.getElementById("in_citizen_call_reason").value
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MDTCitizenCall", type:"create", text}))
Close()
document.getElementById("in_citizen_call_reason").value = ""
}
function CloseCitizenCall(){
document.getElementById("create_citizen_call").style.animation = "Hide_panel 0.5s ease";
setTimeout(function(){
$("#create_citizen_call").css("display","none")
}, 400)
}
///////////////////////////////////////////////////////////// MEDIC PANEL \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function CreateMedicerMenu(){
if (Gender == 0){
$(".main_body").attr('src', "assets/main_body_w.png")
$("#head").attr('src', "assets/head_w.png")
$("#body").attr('src', "assets/body_w.png")
$("#right_arm").attr('src', "assets/right_arm_w.png")
$("#left_arm").attr('src', "assets/left_arm_w.png")
$("#right_leg").attr('src', "assets/right_leg_w.png")
$("#left_leg").attr('src', "assets/left_leg_w.png")
}
else{
$(".main_body").attr('src', "assets/main_body.png")
$("#head").attr('src', "assets/head.png")
$("#body").attr('src', "assets/body.png")
$("#right_arm").attr('src', "assets/right_arm.png")
$("#left_arm").attr('src', "assets/left_arm.png")
$("#right_leg").attr('src', "assets/right_leg.png")
$("#left_leg").attr('src', "assets/left_leg.png")
}
DisplayOrNot(Damages.head, "head")
DisplayOrNot(Damages.body, "body")
DisplayOrNot(Damages.larm, "left_arm")
DisplayOrNot(Damages.rarm, "right_arm")
DisplayOrNot(Damages.lleg, "left_leg")
DisplayOrNot(Damages.rleg, "right_leg")
if (DeathStatus){
$(".status_con .box").css("color", "rgb(223, 62, 62)")
$(".status_con .box").html("COMATOSE")
$(".cause_of_death").css("display", "block")
$(".des").css("display", "block")
$(".cause_of_death").html(DeathReason)
}
else{
$(".cause_of_death").css("display", "none")
$(".des").css("display", "none")
if (Damages.bleeding){
$(".status_con .box").css("color", "rgb(223, 62, 62)")
$(".status_con .box").html("BLEEDING")
}
else{
$(".status_con .box").css("color", "rgba(127, 255, 212, 0.87)")
$(".status_con .box").html("NORMAL")
}
}
if (Mediceryou){
$(".patient").html("YOU")
dragMedicElement(document.getElementById("blood_me"), "blood")
DisplayMedicerItem(MedicerItems.Bandage, "blood_me")
}
else{
$(".patient").html("PLAYER")
dragMedicElement(document.getElementById("head_heal"),"head_heal")
dragMedicElement(document.getElementById("body_heal"), "body_heal")
dragMedicElement(document.getElementById("arm_heal"), "arm_heal")
dragMedicElement(document.getElementById("leg_heal"), "leg_heal")
dragMedicElement(document.getElementById("blood"), "blood")
dragMedicElement(document.getElementById("revive"), "revive")
DisplayMedicerItem(MedicerItems.Head, "head_heal")
DisplayMedicerItem(MedicerItems.Body, "body_heal")
DisplayMedicerItem(MedicerItems.Arms, "arm_heal")
DisplayMedicerItem(MedicerItems.Legs, "leg_heal")
DisplayMedicerItem(MedicerItems.Bandage, "blood")
DisplayMedicerItem(MedicerItems.Medikit, "revive")
}
$(".bpm_con .box").html(Bpm)
}
function DisplayMedicerItem(value, id){
if (value != false){
$("#"+id).css("display", "block")
document.getElementById(id).src = "assets/"+value+".png"
}
else{
$("#"+id).css("display", "none")
}
}
function DisplayOrNot(value, id){
if (value){
$("#"+id).css("display", "block")
$("#"+id+"2").css("display", "block")
}
else{
$("#"+id).css("display", "none")
$("#"+id+"2").css("display", "none")
}
}
function CloseMedicPanel(){
document.getElementById("medic_panel").style.animation = "Hide_panel 0.5s ease";
document.getElementById("medic_panel_me").style.animation = "Hide_panel 0.5s ease";
setTimeout(function(){
$(".medic_panel").css("display","none")
}, 400)
}
OGPos = {"head_heal": {x: null, y:null}, "body_heal": {x: null, y:null}, "arm_heal": {x: null, y:null}, "leg_heal": {x: null, y:null},"blood": {x: 12, y: 12},"revive": {x: null, y:null}}
function dragMedicElement(elmnt, item) {
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
if (OGPos[item].x == null){
OGPos[item].x = elmnt.offsetLeft
OGPos[item].y = elmnt.offsetTop
}
elmnt.onmousedown = dragMouseDown
function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event
e.preventDefault()
pos1 = pos3 - e.clientX
pos2 = pos4 - e.clientY
pos3 = e.clientX
pos4 = e.clientY
elmnt.style.opacity = "0.8"
elmnt.style.top = (elmnt.offsetTop - pos2) + "px"
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px"
if (Mediceryou){
if (elementsOverlap(elmnt, document.getElementById("medic_panel_me")) == false){
closeDragElement()
}
}
else{
if (elementsOverlap(elmnt, document.getElementById("medic_panel")) == false){
closeDragElement()
}
}
}
function closeDragElement() {
UseMedicItem(elmnt, item)
elmnt.style.opacity = "1"
document.onmouseup = null;
document.onmousemove = null;
}
}
function UseMedicItem(elmnt, item){
let elm = elmnt
if (Damages.bleeding == false && DeathStatus == false){
if (item == "head_heal"){
if (elementsOverlap(elm, document.getElementById("head_box")) && Damages.head){
ItemAnim(elm, item)
}
else if(elementsOverlap(elm, document.getElementById("head_box")) && Damages.head == false){
WrongItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else if (item == "body_heal"){
if (elementsOverlap(elm, document.getElementById("body_box")) && Damages.body){
ItemAnim(elm, item)
}
else if(elementsOverlap(elm, document.getElementById("body_box")) && Damages.body == false){
WrongItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else if (item == "arm_heal"){
if (elementsOverlap(elm, document.getElementById("right_arm_box")) && Damages.rarm){
ItemAnim(elm, item, "right")
}
else if(elementsOverlap(elm, document.getElementById("right_arm_box")) && Damages.rarm == false){
WrongItemAnim(elm, item)
}
else if (elementsOverlap(elm, document.getElementById("left_arm_box")) && Damages.larm){
ItemAnim(elm, item, "left")
}
else if(elementsOverlap(elm, document.getElementById("left_arm_box")) && Damages.larm == false){
WrongItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else if (item == "leg_heal"){
if (elementsOverlap(elm, document.getElementById("right_leg_box")) && Damages.rleg){
ItemAnim(elm, item, "right")
}
else if(elementsOverlap(elm, document.getElementById("right_leg_box")) && Damages.rleg == false){
WrongItemAnim(elm, item)
}
else if (elementsOverlap(elm, document.getElementById("left_leg_box")) && Damages.lleg){
ItemAnim(elm, item, "left")
}
else if(elementsOverlap(elm, document.getElementById("left_leg_box")) && Damages.lleg == false){
WrongItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else if (item == "blood"){
if (elementsOverlap(elm, document.getElementById("body_box")) || elementsOverlap(elm, document.getElementById("body_box2")) || elementsOverlap(elm, document.getElementById("right_leg_box")) || elementsOverlap(elm, document.getElementById("left_leg_box")) || elementsOverlap(elm, document.getElementById("right_arm_box")) || elementsOverlap(elm, document.getElementById("left_arm_box")) || elementsOverlap(elm, document.getElementById("head_box"))){
WrongItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else if (item == "revive"){
if (elementsOverlap(elm, document.getElementById("body_box"))){
WrongItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
}
else if(DeathStatus){
if (item == "revive"){
if (elementsOverlap(elm, document.getElementById("body_box"))){
ItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else{
if (item == "blood"){
if (elementsOverlap(elm, document.getElementById("body_box")) || elementsOverlap(elm, document.getElementById("body_box2")) || elementsOverlap(elm, document.getElementById("right_leg_box")) || elementsOverlap(elm, document.getElementById("left_leg_box")) || elementsOverlap(elm, document.getElementById("right_arm_box")) || elementsOverlap(elm, document.getElementById("left_arm_box")) || elementsOverlap(elm, document.getElementById("head_box")) && Damages.bleeding){
ItemAnim(elm, item)
}
else if (elementsOverlap(elm, document.getElementById("body_box")) || elementsOverlap(elm, document.getElementById("body_box2")) || elementsOverlap(elm, document.getElementById("right_leg_box")) || elementsOverlap(elm, document.getElementById("left_leg_box")) || elementsOverlap(elm, document.getElementById("right_arm_box")) || elementsOverlap(elm, document.getElementById("left_arm_box")) || elementsOverlap(elm, document.getElementById("head_box")) && Damages.bleeding == false){
WrongItemAnim(elm, item)
}
else{
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
}
}
else{
WrongItemAnim(elm, item)
}
}
}
function ItemAnim(elm, item, part){
elm.style.animation = 'none';
elm.offsetHeight;
elm.style.animation = "itemuseanim 1.2s";
setTimeout(function(){
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
elm.style.animation = 'none';
Close()
},1200)
$.post('https://'+GetParentResourceName()+'/UseButton', JSON.stringify({action:"MedicerMenu", type:"useitem", item, you:Mediceryou, part}))
}
function WrongItemAnim(elm, item){
elm.style.animation = 'none';
elm.offsetHeight;
elm.style.animation = "itemnotuseanim 0.8s";
setTimeout(function(){
elm.style.top = OGPos[item].y + "px"
elm.style.left = OGPos[item].x + "px"
elm.style.animation = 'none';
},800)
}
/////////////////////////////////////////////////////////////// BASIC FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
function isNumber(evt) {
evt = (evt) ? evt : window.event
var charCode = (evt.which) ? evt.which : evt.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) {
return false
}
return true
}
function setlenght(id) {
if (document.getElementById(id).value.length === 2 && document.getElementById(id).value[0] == 0){
document.getElementById(id).value = document.getElementById(id).value.substring(1)
}
if (document.getElementById(id).value.length === 4){
document.getElementById(id).value = document.getElementById(id).value.substring(1)
}
if (document.getElementById(id).value.length === 0){
document.getElementById(id).value = 0
}
changemoney()
return true
}
function dragElement(elmnt) {
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
elmnt.onmousedown = dragMouseDown;
function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event;
e.preventDefault();
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
elmnt.style.opacity = "0.8"
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
}
function closeDragElement() {
elmnt.style.opacity = "1"
document.onmouseup = null;
document.onmousemove = null;
}
}
function elementsOverlap(el1, el2) {
const domRect1 = el1.getBoundingClientRect();
const domRect2 = el2.getBoundingClientRect();
return !(
domRect1.top+50 > domRect2.bottom ||
domRect1.right-50 < domRect2.left ||
domRect1.bottom-50 < domRect2.top ||
domRect1.left+50 > domRect2.right
);
}
function GetTime(createdtime){
let time = Math.round(Date.now() / (1000 * 60)) - createdtime
return time
}
function fancyTimeFormat(duration)
{
var hrs = ~~(duration / 3600);
var mins = ~~((duration % 3600) / 60);
var secs = ~~duration % 60;
var ret = "";
if (hrs > 0) {
ret += "" + hrs + ":" + (mins < 10 ? "0" : "");
}
ret += "" + mins + ":" + (secs < 10 ? "0" : "");
ret += "" + secs;
return ret;
}