Skip to content

Commit

Permalink
Требование наличия мед доступа для списывания страховки
Browse files Browse the repository at this point in the history
  • Loading branch information
Anorak2024 committed Oct 16, 2024
1 parent cdf3898 commit 7ad3096
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 13 deletions.
2 changes: 1 addition & 1 deletion code/game/machinery/adv_med.dm
Original file line number Diff line number Diff line change
Expand Up @@ -408,7 +408,7 @@
P.name = "Body Scan - [name]"
isPrinting = FALSE
if ("insurance")
do_insurance_collection(occupant, inserted_id ? inserted_id.associated_account_number : null)
do_insurance_collection(usr, occupant, inserted_id ? inserted_id.associated_account_number : null)
if ("eject_id")
eject_id()
else
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/devices/scanners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ REAGENT SCANNER
print_report(user)
return 1
if(href_list["insurance"])
do_insurance_collection(scanned, connected_acc)
do_insurance_collection(user, scanned, connected_acc)
return 1
if(href_list["mode"])
toggle_mode()
Expand Down
26 changes: 15 additions & 11 deletions code/modules/economy/insurance.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,25 @@
else
return null

/proc/do_insurance_collection(mob/living/carbon/human/user, datum/money_account/connected_acc)
if(!istype(user))
user.visible_message("Некорректная цель списания страховки.")
/proc/do_insurance_collection(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/money_account/connected_acc)
if(!istype(target))
target.visible_message("Некорректная цель списания страховки.")
return FALSE

var/req = get_req_insurance(user)
var/list/access = user?.get_access()
if (user && !(ACCESS_MEDICAL in access))
target.visible_message("Недостаточно доступа для списания страховки.")
return FALSE

var/datum/money_account/acc = get_insurance_account(user)
var/req = get_req_insurance(target)
var/datum/money_account/acc = get_insurance_account(target)

if (!acc)
user.visible_message("Аккаунт не обнаружен.")
target.visible_message("Аккаунт не обнаружен.")
return FALSE

if (!COOLDOWN_FINISHED(acc, insurance_collecting))
user.visible_message("С цели недавно уже списывалась страховка. Подождите немного.")
target.visible_message("С цели недавно уже списывалась страховка. Подождите немного.")
return FALSE
COOLDOWN_START(acc, insurance_collecting, 60 SECONDS)

Expand All @@ -39,10 +43,10 @@

if (from_money_acc)
if (!acc.insurance_auto_replen)
user.visible_message(span_warning("Страховки не хватает на оплату лечения. Автопополнение страховки отключено."))
target.visible_message(span_warning("Страховки не хватает на оплату лечения. Автопополнение страховки отключено."))
return FALSE
if (!acc.charge(from_money_acc))
user.visible_message(span_warning("Страховки не хватает на оплату лечения. Автопополнение страховки провалилось."))
target.visible_message(span_warning("Страховки не хватает на оплату лечения. Автопополнение страховки провалилось."))
return FALSE

if (from_money_acc)
Expand All @@ -55,9 +59,9 @@
if (money_account)
money_account.money += round(round(req / 2))

user.visible_message("Страховка списанна в размере: [req].")
target.visible_message("Страховка списанна в размере: [req].")
if (from_money_acc)
user.visible_message("Страховки не хватило. [from_money_acc / 2] недостающих очков страховки восполнено за счет [from_money_acc] кредитов со счета пациента.")
target.visible_message("Страховки не хватило. [from_money_acc / 2] недостающих очков страховки восполнено за счет [from_money_acc] кредитов со счета пациента.")

return TRUE

Expand Down

0 comments on commit 7ad3096

Please sign in to comment.