Makes bluespace navigation gigabeacons both significantly nicer to use, and significantly cooler (#77223)

## About The Pull Request

"Behold, a navigation beacon" Plato says to the crowd of shocked
onlookers.


![image](https://github.com/tgstation/tgstation/assets/82386923/a8ec22f0-69a0-4ba6-9032-9936031873f0)

What are you looking at here? Navigation beacons have been party
reworked for significantly improved ease of use, and for significantly
cooler functionality.

As it stands, in order to explore space with a ship of some sort, you
have to take the following steps:

Fly to target zlevel
Build a floor
Build a machine frame, then make the beacon out of it
Go back and park your ship

Now, while this doesn't eliminate this process, it makes it a step
shorter and a good bit less annoying to do. There are no gigabeacon
boards, instead a compact beacon can be printed. This can be used inhand
and, after a delay of three seconds, will create a brand new gigabeacon
in front of you with no extra hassle.

So, aside from the sprite (the old one is an alien power core, by the
way), what's new? Just a bit of flavor. Examining a gigabeacon will
mention a radio frequency. If you tune into this radio frequency, then
you might be able to catch the automatic messages the beacons put out
every five minutes. They detail a little bit about the beacon, namely
its coordinates, and if its activate or locked. While not critical info
my any means, it can be good information to have pop up every few
minutes, or for discovering that there are gigabeacons you didn't know
were there before.
## Why It's Good For The Game

Gigabeacons had two big problems, one was that they were pointlessly
annoying to set up, and two was that they didn't have their own sprite.
Yup, they just used a random alien tech structure and nobody said
anything about it. Hopefully this pr fixes both of those problems,
alongside adding a little neat bit of flavor to them in the form of the
automatic radio broadcasts they put every few minutes on a non-standard
channel.
## Changelog
🆑
qol: Gigabeacons no longer need to be constructed like standard
machines, instead being printed as items that can be deployed quickly
inhand without tools.
qol: Gigabeacons are no longer their own research node, instead being a
part of telecomms tech (due to the fact they're RADIO navigation
beacons)
image: Navigation gigabeacons now have their own unique sprites,
inspired by maritime EPIRB devices. If you find a yellow box with an
antenna on it, you probably found a nav beacon!
code: The deployable component now gives you an option to disable the
examine blurb it adds to its parent
/🆑
This commit is contained in:
Paxilmaniac
2023-08-11 19:36:19 -04:00
committed by GitHub
parent 4c9b104105
commit b52f671be6
7 changed files with 108 additions and 61 deletions
+10 -5
View File
@@ -10,15 +10,18 @@
/datum/component/deployable
/// The time it takes to deploy the object
var/deploy_time = 5 SECONDS
var/deploy_time
/// The object that gets spawned if deployed successfully
var/obj/thing_to_be_deployed
/// If the item used to deploy gets deleted on use or not
var/delete_on_use
/// If the component adds a little bit into the parent's description
var/add_description_hint
/// Used in getting the name of the deployed object
var/deployed_name
/// If the item used to deploy gets deleted on use or not
var/delete_on_use = TRUE
/datum/component/deployable/Initialize(deploy_time, thing_to_be_deployed, delete_on_use)
/datum/component/deployable/Initialize(deploy_time = 5 SECONDS, thing_to_be_deployed, delete_on_use = TRUE, add_description_hint = TRUE)
. = ..()
if(!isitem(parent))
return COMPONENT_INCOMPATIBLE
@@ -26,8 +29,10 @@
src.deploy_time = deploy_time
src.thing_to_be_deployed = thing_to_be_deployed
src.delete_on_use = delete_on_use
src.add_description_hint = add_description_hint
RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine))
if(add_description_hint)
RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine))
RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_hand))
var/obj/item/typecast = thing_to_be_deployed