diff --git a/modular_splurt/code/game/machinery/computer/slavery.dm b/modular_splurt/code/game/machinery/computer/slavery.dm index 8276f62302..8e05044231 100644 --- a/modular_splurt/code/game/machinery/computer/slavery.dm +++ b/modular_splurt/code/game/machinery/computer/slavery.dm @@ -1,4 +1,5 @@ #define ANNOUNCEMENT_COOLDOWN 6 MINUTES +#define SLAVER_RANSOM_SCALE_VALUE 1000000 /obj/machinery/computer/slavery name = "\improper slave management console" @@ -49,6 +50,7 @@ var/turf/curr = get_turf(src) data["currentCoords"] = "[curr.x], [curr.y], [curr.z]" data["value_table"] = GLOB.slavers_ransom_values + data["ransom_scale_value"] = SLAVER_RANSOM_SCALE_VALUE data["categories"] = list() for(var/category in possible_gear) var/list/cat = list( diff --git a/modular_splurt/code/game/object/items/devices/radio/electropack.dm b/modular_splurt/code/game/object/items/devices/radio/electropack.dm index 85821e5bd3..826c6d018b 100644 --- a/modular_splurt/code/game/object/items/devices/radio/electropack.dm +++ b/modular_splurt/code/game/object/items/devices/radio/electropack.dm @@ -43,8 +43,11 @@ var/automatic_ransom_value = GLOB.slavers_ransom_values[M.job] if (automatic_ransom_value) station_rank = M.job - setPrice(automatic_ransom_value) + var/datum/bank_account/bank = SSeconomy.get_dep_account(ACCOUNT_CAR) + automatic_ransom_value += automatic_ransom_value * (bank.account_balance / SLAVER_RANSOM_SCALE_VALUE) // Slave price scales with station credit balance (+100% per 1,000,000 credits in the cargo budget) + + setPrice(automatic_ransom_value) /obj/item/electropack/shockcollar/slave/proc/setPrice(newPrice) var/mob/living/M = loc diff --git a/modular_splurt/code/game/object/items/devices/radio/headset.dm b/modular_splurt/code/game/object/items/devices/radio/headset.dm new file mode 100644 index 0000000000..f3dbd8c603 --- /dev/null +++ b/modular_splurt/code/game/object/items/devices/radio/headset.dm @@ -0,0 +1,5 @@ +/obj/item/radio/headset/syndicate/slaver/Initialize() + . = ..() + + set_frequency(FREQ_SYNDICATE) + freqlock = TRUE diff --git a/modular_splurt/code/game/object/structures/crates_lockers/closets/slaver.dm b/modular_splurt/code/game/object/structures/crates_lockers/closets/slaver.dm index b47aa92475..a1414adfef 100644 --- a/modular_splurt/code/game/object/structures/crates_lockers/closets/slaver.dm +++ b/modular_splurt/code/game/object/structures/crates_lockers/closets/slaver.dm @@ -10,7 +10,7 @@ new /obj/item/clothing/under/syndicate(src) new /obj/item/clothing/shoes/workboots(src) new /obj/item/storage/belt/military(src) - new /obj/item/radio/headset/syndicate(src) + new /obj/item/radio/headset/syndicate/slaver(src) new /obj/item/crowbar/red(src) new /obj/item/restraints/handcuffs(src) new /obj/item/restraints/handcuffs(src) @@ -31,7 +31,7 @@ new /obj/item/clothing/under/syndicate(src) new /obj/item/clothing/shoes/workboots(src) new /obj/item/storage/belt/military(src) - new /obj/item/radio/headset/syndicate(src) + new /obj/item/radio/headset/syndicate/slaver(src) new /obj/item/crowbar/red(src) new /obj/item/restraints/handcuffs(src) new /obj/item/restraints/handcuffs(src) diff --git a/modular_splurt/code/modules/antagonists/_common/antag_spawner.dm b/modular_splurt/code/modules/antagonists/_common/antag_spawner.dm index f5c2ba304f..ebb077ff11 100644 --- a/modular_splurt/code/modules/antagonists/_common/antag_spawner.dm +++ b/modular_splurt/code/modules/antagonists/_common/antag_spawner.dm @@ -59,6 +59,8 @@ else R = new /mob/living/silicon/robot/modules/slaver(T) + R.radio = new /obj/item/radio/borg/syndicate(R) + var/brainopsname = C.prefs.real_name R.mmi.name = "Man-Machine Interface: [brainopsname]" @@ -73,3 +75,9 @@ new_borg.send_to_spawnpoint = FALSE R.mind.add_antag_datum(new_borg,creator_slaver.slaver_team) R.mind.special_role = "Slaver Cyborg" + R.grant_language(/datum/language/codespeak, TRUE, TRUE) + + var/newName = sanitize_name(stripped_input(R, "Enter new robot name", "Cyborg Reclassification", "Cyborg", MAX_NAME_LEN)) + if (newName) + R.custom_name = newName + R.updatename() diff --git a/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm b/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm index c460c46503..6e9033a0b4 100644 --- a/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm +++ b/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm @@ -90,6 +90,13 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) category = "Advanced" cost = 10000 +/datum/slaver_gear/jetpack + name = "Jetpack" + description = "Back-mounted jetpack for use in zero-gravity environments." + build_path = /obj/item/tank/jetpack/oxygen/harness + category = "Advanced" + cost = 3000 + /datum/slaver_gear/riot name = "Riot Kit" description = "Toy L6 SAW with riot darts." @@ -153,7 +160,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) description = ".50 cal sniper rifle with sleep-inducing rounds." build_path = /obj/item/storage/backpack/duffelbag/syndie/slaver_marksman category = "Firearms" - cost = 40000 + cost = 50000 /datum/slaver_gear/freedom name = "Freedom Implant" @@ -171,7 +178,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) /datum/slaver_gear/implant_teleport name = "Emergency Teleport Implants" - description = "Emergency teleport implant x 2." + description = "Emergency teleport implant x 2. Once activated, user needs to stand still for 5 seconds, after which they will be teleported from any location back to the slaver hideout. Has only one use." build_path = /obj/item/storage/box/slaver_teleport category = "Implants" cost = 15000 diff --git a/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_outfits.dm b/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_outfits.dm index c123e2ca5e..c97a6f18c8 100644 --- a/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_outfits.dm +++ b/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_outfits.dm @@ -5,7 +5,7 @@ shoes = /obj/item/clothing/shoes/workboots gloves = /obj/item/clothing/gloves/color/black back = /obj/item/storage/backpack - ears = /obj/item/radio/headset/syndicate + ears = /obj/item/radio/headset/syndicate/slaver id = /obj/item/card/id/syndicate/slaver backpack_contents = list(/obj/item/storage/box/survival,\ /obj/item/kitchen/knife/combat/survival) @@ -17,9 +17,5 @@ gloves = /obj/item/clothing/gloves/krav_maga/combatglovesplus /datum/outfit/slaver/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) - var/obj/item/radio/R = H.ears - R.set_frequency(FREQ_SYNDICATE) - R.freqlock = TRUE - H.faction |= ROLE_SLAVER H.update_icons() diff --git a/tgstation.dme b/tgstation.dme index a6cb7c0d62..e2ba4298e8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4251,6 +4251,7 @@ #include "modular_splurt\code\game\object\items\circuitboards\computer_circuitboards.dm" #include "modular_splurt\code\game\object\items\circuitboards\machine_circuitboards.dm" #include "modular_splurt\code\game\object\items\devices\radio\electropack.dm" +#include "modular_splurt\code\game\object\items\devices\radio\headset.dm" #include "modular_splurt\code\game\object\items\devices\radio\radio.dm" #include "modular_splurt\code\game\object\items\implants\implant_slaver.dm" #include "modular_splurt\code\game\object\items\lewd_items\lewd.dm" diff --git a/tgui/packages/tgui/interfaces/SlaveConsole.js b/tgui/packages/tgui/interfaces/SlaveConsole.js index 2cb5545ec5..d133b4363b 100644 --- a/tgui/packages/tgui/interfaces/SlaveConsole.js +++ b/tgui/packages/tgui/interfaces/SlaveConsole.js @@ -108,7 +108,7 @@ export const SlaveConsole = (props, context) => { const SlavePanel = (props, context) => { const { slaves } = props; - const { act, data } = useBackend(context); + const { act } = useBackend(context); if (!slaves.length) { return ( @@ -239,7 +239,9 @@ const SupplyPanel = (props, context) => { }; const RansomPanel = (props, context) => { + const { data } = useBackend(context); const value_table = props.value_table; + const { cargo_credits, ransom_scale_value } = data; let value_table_converted = []; @@ -271,7 +273,10 @@ const RansomPanel = (props, context) => { {rank_value.rank} - {formatMoney(rank_value.value, null, true)}cr + {formatMoney( + rank_value.value + (rank_value.value + * (cargo_credits / ransom_scale_value)) + , null, true)}cr );