From 44536ad7ab378eb3f388b24bd4a0b37d4ad63aa5 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Tue, 20 Sep 2022 16:57:49 -0700 Subject: [PATCH] Fixes a runtime which bricked the pad plus fixing sprites. Also ports https://github.com/tgstation/tgstation/pull/55533 credit to cacogen. --- code/game/machinery/civilian_bountys.dm | 20 +++++++++++++++----- code/modules/events/pirates.dm | 15 +++++++++------ icons/obj/telescience.dmi | Bin 13951 -> 6094 bytes 3 files changed, 24 insertions(+), 11 deletions(-) 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 1e60c01131fe33885f65d1918eadc3efef606f63..b342d2db71b27bb80ec6a1bd5ede88ebd7e62dc6 100644 GIT binary patch literal 6094 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 PWuV9E&($hbti%2n3!Q#I