Antag role purchase logs (#29850)

* Beginning of this

* And don't show it if there are none

* Don't make this disappear

* Better title

* Don't want this repeated

* Standardises

* Tweaks

* Testing antagHUD visibility

* New window size

Co-authored-by: kanef <kanef9x@protonmail.com>
This commit is contained in:
kane-f
2021-06-22 20:11:45 +01:00
committed by GitHub
parent b98e1278ed
commit d6e84bc0e8
3 changed files with 69 additions and 26 deletions

View File

@@ -189,11 +189,42 @@
out += R.GetMemory(src, TRUE)//allowing edits
out += "<br><a href='?src=\ref[src];add_role=1'>(add a new role)</a>"
out += antag_roles.len ? "<br><a href='?src=\ref[src];show_purchases=1'>(show purchase log)</a>" : ""
//<a href='?src=\ref[src];obj_announce=1'>Announce objectives</a><br><br>"} TODO: make sure that works
usr << browse(out, "window=role_panel[src];size=700x500")
/datum/mind/proc/role_purchase_log()
if(!ticker || !ticker.mode)
alert("Ticker and Game Mode aren't initialized yet!", "Alert")
return
var/out = {"<TITLE>Role purchase log</TITLE><B>[name]</B>[(current&&(current.real_name!=name))?" (as [current.real_name])":""]<BR>Assigned job: [assigned_role]<hr>"}
if(current.spell_list && current.spell_list.len)
out += "Known spells:<BR>"
for(var/spell/S in current.spell_list)
var/icon/tempimage = icon('icons/mob/screen_spells.dmi', S.hud_state)
out += "<img class='icon' src='data:image/png;base64,[iconsouth2base64(tempimage)]'> [S.name]<BR>"
for(var/role in antag_roles)
var/datum/role/R = antag_roles[role]
if(R.uplink_items_bought)
out += "Uplink items bought:<BR>"
for(var/entry in R.uplink_items_bought)
out += "[entry]<BR>"
if(istype(R,/datum/role/wizard))
var/datum/role/wizard/W = R
if(W.artifacts_bought)
out += "Artifacts bought:<BR>"
for(var/entry in W.artifacts_bought)
out += "[entry]<BR>"
if(W.potions_bought)
out += "Potions bought:<BR>"
for(var/entry in W.potions_bought)
out += "[entry]<BR>"
usr << browse(out, "window=role_purchase_log[src];size=300x500")
/datum/mind/proc/get_faction_list()
var/list/all_factions = list()
for(var/datum/faction/F in ticker.mode.factions)
@@ -210,6 +241,9 @@
return all_factions
/datum/mind/Topic(href, href_list)
if (href_list["show_purchases"])
role_purchase_log()
if(!check_rights(R_ADMIN))
return
if (href_list["job_edit"])

View File

@@ -421,36 +421,42 @@
if(butchery)
msg += "<span class='warning'>[butchery]</span>\n"
if(istype(user) && user.hasHUD(HUD_SECURITY))
var/perpname = get_identification_name(get_face_name())
var/criminal = "None"
if(istype(user))
if(user.hasHUD(HUD_SECURITY))
var/perpname = get_identification_name(get_face_name())
var/criminal = "None"
var/datum/data/record/sec_record = data_core.find_security_record_by_name(perpname)
if(sec_record)
criminal = sec_record.fields["criminal"]
var/datum/data/record/sec_record = data_core.find_security_record_by_name(perpname)
if(sec_record)
criminal = sec_record.fields["criminal"]
msg += {"<span class = 'deptradio'>Criminal status:</span> <a href='?src=\ref[src];criminal=1'>\[[criminal]\]</a>
<span class = 'deptradio'>Security records:</span> <a href='?src=\ref[src];secrecord=`'>\[View\]\n</a>"}
msg += {"<span class = 'deptradio'>Criminal status:</span> <a href='?src=\ref[src];criminal=1'>\[[criminal]\]</a>
<span class = 'deptradio'>Security records:</span> <a href='?src=\ref[src];secrecord=`'>\[View\]\n</a>"}
if(!isjustobserver(user))
msg += "<a href='?src=\ref[src];secrecordadd=`'>\[Add comment\]</a>\n"
msg += {"[wpermit(src) ? "<span class = 'deptradio'>Has weapon permit.</span>\n" : ""]"}
if(user.hasHUD(HUD_MEDICAL))
var/perpname = get_identification_name(get_face_name())
var/medical = "None"
var/datum/data/record/gen_record = data_core.find_general_record_by_name(perpname)
if(gen_record)
medical = gen_record.fields["p_stat"]
msg += {"<span class = 'deptradio'>Physical status:</span> <a href='?src=\ref[src];medical=1'>\[[medical]\]</a>\n
<span class = 'deptradio'>Medical records:</span> <a href='?src=\ref[src];medrecord=`'>\[View\]\n</a>"}
for (var/ID in virus2)
if (ID in virusDB)
var/datum/data/record/v = virusDB[ID]
msg += "<br><span class='warning'>[v.fields["name"]][v.fields["nickname"] ? " \"[v.fields["nickname"]]\"" : ""] detected in subject.</span>\n"
if(!isjustobserver(user))
msg += "<a href='?src=\ref[src];secrecordadd=`'>\[Add comment\]</a>\n"
msg += {"[wpermit(src) ? "<span class = 'deptradio'>Has weapon permit.</span>\n" : ""]"}
msg += "<a href='?src=\ref[src];medrecordadd=`'>\[Add comment\]</a>\n"
if(istype(user) && user.hasHUD(HUD_MEDICAL))
var/perpname = get_identification_name(get_face_name())
var/medical = "None"
var/datum/data/record/gen_record = data_core.find_general_record_by_name(perpname)
if(gen_record)
medical = gen_record.fields["p_stat"]
msg += {"<span class = 'deptradio'>Physical status:</span> <a href='?src=\ref[src];medical=1'>\[[medical]\]</a>\n
<span class = 'deptradio'>Medical records:</span> <a href='?src=\ref[src];medrecord=`'>\[View\]\n</a>"}
for (var/ID in virus2)
if (ID in virusDB)
var/datum/data/record/v = virusDB[ID]
msg += "<br><span class='warning'>[v.fields["name"]][v.fields["nickname"] ? " \"[v.fields["nickname"]]\"" : ""] detected in subject.</span>\n"
if(!isjustobserver(user))
msg += "<a href='?src=\ref[src];medrecordadd=`'>\[Add comment\]</a>\n"
if(isjustobserver(user))
var/mob/dead/observer/O = user
if(O.antagHUD && mind && mind.antag_roles.len)
msg += "<a href='?src=\ref[src];purchaselog=`'>\[Show antag purchase log\]</a>\n"
if(flavor_text && can_show_flavor_text())
msg += "[print_flavor_text()]\n"

View File

@@ -622,6 +622,9 @@
if (!t1 || (usr.incapacitated() && !isAdminGhost(usr)) || !usr.hasHUD(HUD_MEDICAL))
return
med_record.add_comment(t1)
else if (href_list["purchaselog"])
if(mind)
mind.role_purchase_log()
else if (href_list["listitems"])
var/mob/M = usr
if(istype(M, /mob/dead) || (!M.isUnconscious() && !M.eye_blind && !M.blinded))