diff --git a/code/game/machinery/civilian_bountys.dm b/code/game/machinery/civilian_bountys.dm
index 5bcf0a8c76..9c913ee9cf 100644
--- a/code/game/machinery/civilian_bountys.dm
+++ b/code/game/machinery/civilian_bountys.dm
@@ -1,3 +1,5 @@
+#define CIV_BOUNTY_SPLIT 30
+
///Pad for the Civilian Bounty Control.
/obj/machinery/piratepad/civilian
name = "civilian bounty pad"
@@ -97,7 +99,11 @@
SSeconomy.civ_bounty_tracker++
var/obj/item/bounty_cube/reward = new /obj/item/bounty_cube(drop_location())
reward.bounty_value = curr_bounty.reward
- reward.AddComponent(/datum/component/pricetag, inserted_scan_id.registered_account, 10)
+ reward.bounty_name = curr_bounty.name
+ reward.bounty_holder = inserted_scan_id.registered_name
+ reward.name = "\improper [reward.bounty_value] cr [reward.name]"
+ reward.desc += " The tag indicates it was [reward.bounty_holder]'s reward for completing the [reward.bounty_name] bounty and that it was created at [station_time_timestamp(format = "hh:mm")]."
+ reward.AddComponent(/datum/component/pricetag, inserted_scan_id.registered_account, CIV_BOUNTY_SPLIT)
pad.visible_message("[pad] activates!")
flick(pad.sending_state,pad)
pad.icon_state = pad.idle_state
@@ -151,15 +157,15 @@
if(inserted_scan_id.registered_account.civilian_bounty)
data["id_bounty_info"] = inserted_scan_id.registered_account.civilian_bounty.description
data["id_bounty_num"] = inserted_scan_id.registered_account.bounty_num()
- data["id_bounty_value"] = inserted_scan_id.registered_account.civilian_bounty.reward
+ data["id_bounty_value"] = (inserted_scan_id.registered_account.civilian_bounty.reward) * (CIV_BOUNTY_SPLIT/100)
if(inserted_scan_id.registered_account.bounties)
data["picking"] = TRUE
data["id_bounty_names"] = list(inserted_scan_id.registered_account.bounties[1].name,
inserted_scan_id.registered_account.bounties[2].name,
inserted_scan_id.registered_account.bounties[3].name)
- data["id_bounty_values"] = list(inserted_scan_id.registered_account.bounties[1].reward,
- inserted_scan_id.registered_account.bounties[2].reward,
- inserted_scan_id.registered_account.bounties[3].reward)
+ data["id_bounty_values"] = list(inserted_scan_id.registered_account.bounties[1].reward * (CIV_BOUNTY_SPLIT/100),
+ inserted_scan_id.registered_account.bounties[2].reward * (CIV_BOUNTY_SPLIT/100),
+ inserted_scan_id.registered_account.bounties[3].reward * (CIV_BOUNTY_SPLIT/100))
else
data["picking"] = FALSE
return data
@@ -235,6 +241,10 @@
icon_state = "bounty_cube"
///Value of the bounty that this bounty cube sells for.
var/bounty_value = 0
+ ///Who completed the bounty.
+ var/bounty_holder
+ ///What the bounty was for.
+ var/bounty_name
///Beacon to launch a new bounty setup when activated.
diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm
index 749c2e4f3e..188d733cd8 100644
--- a/code/modules/events/pirates.dm
+++ b/code/modules/events/pirates.dm
@@ -251,8 +251,8 @@
/obj/machinery/piratepad
name = "cargo hold pad"
icon = 'icons/obj/telescience.dmi'
- icon_state = "lpad-idle-o"
- var/idle_state = "lpad-idle-o"
+ icon_state = "lpad-idle-off"
+ var/idle_state = "lpad-idle"
var/warmup_state = "lpad-idle"
var/sending_state = "lpad-beam"
var/cargo_hold_id
@@ -296,7 +296,7 @@
. = ..()
if (istype(I) && istype(I.buffer,/obj/machinery/piratepad))
to_chat(user, "You link [src] with [I.buffer] in [I] buffer.")
- pad = I.buffer
+ pad_ref = WEAKREF(I.buffer)
return TRUE
/obj/machinery/computer/piratepad_control/LateInitialize()
@@ -304,10 +304,11 @@
if(cargo_hold_id)
for(var/obj/machinery/piratepad/P in GLOB.machines)
if(P.cargo_hold_id == cargo_hold_id)
- pad = P
+ pad_ref = WEAKREF(P)
return
else
pad = locate() in range(4,src)
+ pad_ref = WEAKREF(pad)
/obj/machinery/computer/piratepad_control/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
@@ -318,7 +319,7 @@
/obj/machinery/computer/piratepad_control/ui_data(mob/user)
var/list/data = list()
data["points"] = points
- data["pad"] = pad ? TRUE : FALSE
+ data["pad"] = pad_ref?.resolve() ? TRUE : FALSE
data["sending"] = sending
data["status_report"] = status_report
return data
@@ -327,7 +328,7 @@
. = ..()
if(.)
return
- if(!pad)
+ if(!pad_ref?.resolve())
return
switch(action)
@@ -348,6 +349,7 @@
status_report = "Predicted value: "
var/value = 0
var/datum/export_report/ex = new
+ var/obj/machinery/piratepad/pad = pad_ref?.resolve()
for(var/atom/movable/AM in get_turf(pad))
if(AM == pad)
continue
@@ -366,6 +368,7 @@
return
var/datum/export_report/ex = new
+ var/obj/machinery/piratepad/pad = pad_ref?.resolve()
for(var/atom/movable/AM in get_turf(pad))
if(AM == pad)
diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi
index 1e60c01131..b342d2db71 100644
Binary files a/icons/obj/telescience.dmi and b/icons/obj/telescience.dmi differ